Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#8

Re: [MySQL] AutoInc fehlende Einträge auffühlen

  Alt 3. Feb 2007, 11:16
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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat