SQL を使用してテーブル内の欠落している ID を検索します
自動インクリメント主キーを持つデータベース テーブルでは、削除されたエントリによってフィールド値に「穴」が生じる可能性があります。これらの欠落している ID を特定するには、クエリを作成します。
MySQL および SQL Server クエリ:
<code class="language-sql">SELECT ID + 1 FROM table_name WHERE ID + 1 NOT IN (SELECT DISTINCT ID FROM table_name);</code>
このクエリは、テーブル内の最初のエントリと最後のエントリの間にある、連続して欠落しているすべての ID のリストを提供します。
SQLite クエリ:
<code class="language-sql">SELECT DISTINCT id +1 FROM table_name WHERE id + 1 NOT IN (SELECT DISTINCT id FROM table_name);</code>
SQLite は LIMIT キーワードをサポートしていないため、結果の重複を避けるために個別のサブクエリを使用してください。
その他の注意事項:
<code class="language-sql">SELECT ID + 1 FROM table_name WHERE ID + 1 NOT IN ( SELECT DISTINCT ID FROM table_name ) AND ID + 1 < MaxID;</code>
この変更は SQLite のすべてのバージョンでサポートされているわけではないことに注意してください。
以上がSQL データベース テーブルで不足している自動インクリメント ID を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。