Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql] Jak znaleźć brakujące ID w bazie
M@X
post
Post #1





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam.
Mam baze prawie 100 000 rekordów. Każdy rekord ma swój identyfikator (ID) nadawany rosnąco. Jednak w przedziale 1 - 100 000 są pewne luki. Niektóre rekordy są wykasowane.
Chciałbym sprawdzić jakich rekordów brakuje. Wylistować te brakujące ID....
Nie moge wpaść na żaden pomysł...
Może ktoś nakierować jakim zapytaniem sql mogę coś takiego wyciągnąć ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Nie podałeś o jaką bazę chodzi. W czystym SQL-u chyba trzeba będzie faktycznie utworzyć tymczasową tabelę, w takim Postgresie będziesz mógł zrobić coś w stylu:
  1. SELECT id FROM (SELECT generate_series(1, max(id)) AS id FROM tbl_name) sub WHERE id NOT IN(SELECT id FROM tbl_name);


PS. Chyba nie planujesz wykorzystać tego do "uzupełnienia" luk?
Go to the top of the page
+Quote Post
M@X
post
Post #3





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 5.11.2015, 18:46:47 ) *
PS. Chyba nie planujesz wykorzystać tego do "uzupełnienia" luk?

nie (IMG:style_emoticons/default/smile.gif) spokojnie nie chodziło mi o uzupełnienie ID autoincrement (IMG:style_emoticons/default/smile.gif) )

tu znalazłem idealne rozwiązanie: http://www.xaprb.com/blog/2005/12/06/find-...uence-with-sql/
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 15:38