Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pierwszy wolny autonumer
Forum PHP.pl > Forum > Bazy danych > Oracle
frickle
Witam

W związku z tym że jakoś nie mogę znaleźć odpowiedzi na moje pytanie, zwracam się z następującym problemem:

Mamy tabelę:

AUTONUMER | POLE1 | POLE2 | ...
---------------------------------------
1 A B ...
2 C D ...
i tak dalej

Autonumer jest kluczem głównym lub indeksem unikalnym

w pewnym momencie usuwam jakiś rekord, i zostaje mi dziura w autonumeracji. Chciałbym odszukać pierwszy wolny autonumer ale używając SQL-a.
Załóżmy że mamy tak poustawiane te numerki
1
2
3
5
6
7
9
10
11
12

Chciałbym skonstruować zapytanie, które zwróci w tym wypadku 4, ponieważ to jest pierwszy niewykorzystany numerek.

Czy ktoś ma pomysł jak to ugryźć?
woj_tas
A po co? Zauważ że jest to niebezpieczne. W pewnym okresie czasu będziesz miał dwa rekordy o tym samym id (mimo że jeden został już usunięty). Jest to szczególnie niebezpieczne przy złączeniach i relacjach tabel. Identyfikator(id) w tabelach musi być unikalny, nawet w przypadku usunięcia części danych.

Pozdrawiam
oracle-manual
Jeśli musisz znaleść pierwszy unikatowy to skorzystaj z sekwencji. Jeśli to akurat musi być 4 (tak jak na rysunku) to musisz zrobić złączenie tabel A x A a następnie wybrać najniższy w którym różnica jest większ od 1.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.