使用 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 關鍵字,因此使用 distinct 子查詢來避免重複結果。
其他注意事項:
<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 都支援。
以上是如何找到 My SQL 資料庫表中遺失的自增 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!