Hallo,
ich habe folgende Idee (ungetestet):
SQL-Code:
SELECT ID FROM Tabelle
WHERE (ID+1) NOT IN (SELECT ID FROM Tabelle)
Voraussetzung ist, dass ID+1 in der Where-Klausel zulässig ist und
MySQL solche verschachtelten Abfragen kennt.
Bei einer Schleife: Wäre es passender, sie als StoredProcedure in die
DB zu legen (vorausgesetzt, es gibt dort Schleifen)? Vorgehen etwa so (in Pseudo-Firebird):
SQL-Code:
DECLARE VARIABLE ActualID INTEGER;
DECLARE VARIABLE PrevID INTEGER;
DECLARE VARIABLE Diff INTEGER;
PrevID = 0;
FOR SELECT ID FROM Tabelle INTO :ActualID
DO BEGIN
Diff = ActualID - PrevID;
IF (Diff > 1)
THEN BEGIN
NextID = PrevID + 1;
BREAK;
END
END
SUSPEND
RETURN-Wert wäre dann
NextID, und das kann sofort verwendet werden.
Viel Erfolg! Jürgen