Heim >Datenbank >MySQL-Tutorial >Wie finde ich fehlende automatisch inkrementierte IDs in einer SQLite-Tabelle?
Verwenden Sie eine Abfrage nach fehlenden Werten, um fehlende IDs in einer Tabelle zu finden
Diese Abfrage soll fehlende IDs in einer Tabelle mit einem automatisch inkrementierenden eindeutigen Primärschlüsselfeld identifizieren, in der gelöschte Einträge möglicherweise Lücken in den ID-Werten verursacht haben. Zum Beispiel eine Tabelle mit den folgenden Daten:
<code> ID | Value | More fields...</code>
2 |. Katze | ...
3 |. Fisch |. ...
6 |. Hund |. ...
7 |. Erdferkel | ...
9 |. Eule |. ...
10 |. Schwein | ...
11 |. Dachs |. ...
15 |. Mungo |. ...
19 |. Frettchen |. ...
Das erwartete Ergebnis wird eine Liste fehlender IDs sein:
<code> ID</code>
1
4
5
8
12
13
14
16
17
18
Wir gehen von drei Annahmen aus: Die anfängliche erste ID ist 1, die maximale ID ist die letzte ID und es gibt keine gelöschten IDs nach der aktuellen letzten ID.
Für SQLite gibt es eine einfache Lösung:
<code>SELECT DISTINCT id +1 FROM mytable WHERE id + 1 NOT IN (SELECT DISTINCT id FROM mytable);</code>
Diese Abfrage identifiziert effektiv fehlende IDs, indem sie eine Zahlenfolge von der ersten bis zur letzten ID generiert und vorhandene IDs ausschließt, sodass fehlende Werte zurückbleiben. Dies ist eine einfache und effiziente Möglichkeit, dieses Problem in SQLite zu lösen.
Das obige ist der detaillierte Inhalt vonWie finde ich fehlende automatisch inkrementierte IDs in einer SQLite-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!