2012-10-19 42 views
1

可能重複:
How to reuse auto_increment values?利用未使用的主鍵

我有有自動遞增ID -column,因爲它是主鍵,但正在運行的表進入'問題',每當key被刪除時,就會產生差距。這當然不是問題,但它看起來不太整齊。有沒有簡單的方法讓MySQL使用第一個可用的未使用的ID號碼,而不是sequence中的'下一個'號碼?我希望我的問題有道理。

+2

誠實的問題:爲什麼你在意ID值看起來整齊? – adamdunson

回答

4

你想完成什麼,恕我直言,不是一個好主意。考慮到這一點;還有其他Table可能與您剛剛刪除的primary key相關聯。

假設您有與相關的其他表中的現有值刪除primary key: 當您插入與從空隙中primary key新的項目,你將有那麼值了與其他相關表。你不會想要的。除非當然,如果你清除ALL當你刪除主鍵,這是很多工作。 Delete Cascade可能還不夠。

+0

當系統從第一個密鑰刪除時,我的系統已經自動刪除對某個密鑰的所有引用。 – user1105971

1

不帶自動增量。如果你真的想要,你可以改變你的INSERT來特別插入id,並將其設置爲類似於1+(select max(id) from your_table_name)的東西,儘管如果在使用表時沒有行時,你可能需要稍微修改它以正確運行。如果你這樣做,確保它是一個插入查詢的一部分,而不是一個插入後跟一個插入。

但你爲什麼要擔心「整潔」?如果你想用連續的數字來顯示東西,只要用其他方式來做,不要顯示ID。