2011-03-18 89 views
2

我有我的表中的一個主鍵列自動增量。但是,當我從主鍵ID最高的表中刪除一行(可以說11)。然後下一次我做一個插入它插入的密鑰爲12而不是11(儘管邏輯上它可以使用11,因爲沒有與密鑰11相關聯的條目)。我怎樣才能做到這一點?在MySQL中的自動增量

回答

6

你真的確定你想要這個嗎?自動增量列將保證唯一的數字,這就夠了。你可以更新下一個自動增量值(我將不得不查看它的工作原理),但我不認爲你應該這樣做。

如果您需要控制列中的數字,您應該手動進行。

不過,您可以更改像這樣的自動增量號:

ALTER TABLE tbl AUTO_INCREMENT = 100; 

(來源:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

另一句話:如果你有一個數字一到十,並刪除5,你不能輕易做這個。你很難做出下一個auto_increment 5,因爲6已經在那裏了。 所以再次,雖然你可以做你的例子髒東西,真的很難在真實環境中做到這一點。也許開始一個新的問題,描述你的情況,並尋求建議如何解決這個問題沒有auto_increment技巧:)

+2

是的。您不應該再次使用已刪除的ID。 – 2011-03-18 16:35:10

+0

好吧,如果這是最好的做法 – aherlambang 2011-03-18 16:48:40

0

Mysql不具備該功能開箱即用,您需要編寫代碼你的申請。你將遇到的一個問題是,如果兩個交易想要獲得和id,其中一個會得到一個重複的id錯誤。當然,這是更好的避免。

所有的數據庫引擎都缺乏這個「功能」,因爲它不適合併發。