首頁 > 資料庫 > mysql教程 > 如何找到 SQLite 表中遺失的自動遞增 ID?

如何找到 SQLite 表中遺失的自動遞增 ID?

DDD
發布: 2025-01-11 08:20:42
原創
941 人瀏覽過

How to Find Missing Auto-Incremented IDs in an SQLite Table?

使用缺失值查詢找出表中缺少的 ID

此查詢旨在識別具有自增唯一主鍵欄位的表中缺少的 ID,其中已刪除的條目可能在 ID 值中造成了間隙。例如,具有以下數據的表:

<code> ID  | Value    | More fields...</code>
登入後複製

2 | Cat | ...
3 | Fish | ...
6 | Dog | ...
7 | Aardvark | ...
9 | Owl | ...
10 | Pig | ...
11 | Badger | ...
15 | Mongoose | ...
19 | Ferret | ...

預期結果將是缺失 ID 的清單:

<code> ID</code>
登入後複製

1
4
5
8
12
13
14
16
17
18

我們做三個假設:初始第一個 ID 為 1,最大 ID 為最後一個 ID,且目前最後一個 ID 之後沒有刪除的 ID。

對於 SQLite,有一個簡單的解決方案:

<code>SELECT DISTINCT id +1
FROM mytable
WHERE id + 1 NOT IN (SELECT DISTINCT id FROM mytable);</code>
登入後複製

此查詢透過從第一個 ID 產生到最後一個 ID 的數字序列並排除現有 ID 來有效地識別缺少的 ID,從而留下缺失的值。這是在 SQLite 中解決此問題的直接有效的方法。

以上是如何找到 SQLite 表中遺失的自動遞增 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板