![]() |
![]() |
![]()
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ąć ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie dla każdego rekordu sprawdza czy istnieje rekord o ID większym o 1. Pamiętaj, że trzeba wyeliminować ostatni rekord w tabelce (bo wyższego ID nie będzie z definicji), ale to już zadanie domowe (IMG:style_emoticons/default/wink.gif) Ten post edytował sowiq 5.11.2015, 17:56:42 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) ![]() ![]() |
jak przerwa bedzie wieksza niz jeden rekord to nie zwroci brakujacego id, prawdopowobnie musisz wygenerowac dodatkowa tabele z id od 1 do max ile masz w twojej tabeli i poprostu przylaczyc twoja tabele z warunkiem WHERE twoja_tabla.id = NULL
|
|
|
![]()
Post
#4
|
|
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:
PS. Chyba nie planujesz wykorzystać tego do "uzupełnienia" luk? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Zakres szukany od 0-9999. Dla większego zakresu trzeba dodać kolejne "paczki" UNION i dodać je w sumowaniu id.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 212 Pomógł: 0 Dołączył: 18.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 12:42 |