2014-11-14 89 views
0

我有這種結構的表格:補虛自動增量值

| ID |名稱|

id在我的表格中添加新行時會遞增。 例如我有3行:

1|John 
2|Bob 
3|Alice 

如果我將刪除一行ID 將存在:

1|John 
3|Alice 

如何INSERT的新行id = 如果我不知道什麼id是空的?
(或 - 如何插入未使用的id(自動增量)值的行?)
謝謝。

+2

但是這會對您的關係表造成問題爲什麼要插入未使用的ID行? – Ankita 2014-11-14 12:29:52

回答

0

documentation

在一個INSERT,如果ROWID或INTEGER PRIMARY KEY列不是 明確給出的值,則它會被與 未使用的整數自動填充,通常是一個更比目前使用的最大ROWID 。無論是否使用AUTOINCREMENT 關鍵字,情況都是如此。

換句話說,您應該能夠在執行插入時明確指定id並且它不會自動增量。

+0

問題是如何確定明確指定的ID的值。 – 2014-11-14 16:36:08

1

您可以使用此查詢來獲取最少未使用的ID。

SELECT (Min(ID) + 1) AS NewIDToInsert 
    FROM TableName T2A 
    WHERE NOT EXISTS (SELECT ID FROM TableName T2B WHERE T2A.ID + 1 = T2B.ID) 
+0

這在SQLite中不起作用。 – 2014-11-14 13:55:27

+1

@CL .:檢查我的更新結果並更新狀態 – 2014-11-14 14:02:12

+0

AUTOINCREMENT關鍵字不會對此產生任何影響。結果'7'與該問題不符。 – 2014-11-14 16:37:34