2012-08-03 40 views
2

我有一個自動增量整數字段「ID」的表。假設有100條記錄,我刪除了91-100條記錄。創建的下一條記錄我認爲ID字段爲91,但它不是,它是101.有沒有什麼辦法可以避開這個?多謝你們。MySQL自動增加列 - 刪除記錄後不能重複使用數字

+0

這ISN每次設定的ID這並不意味着粗魯,但是;你爲什麼期望它是91?如果您刪除記錄10至18,您是否期望下一個插入的記錄具有ID 10? =) – 2012-08-03 09:16:03

+0

除非你有一個非常緊迫的原因,否則幾乎不應該改變實時數據庫上的自動增量過程。不幸的是,並不是自動增加字段的方式(在MySQL中)意味着工作。 – Corbin 2012-08-03 09:18:00

+0

你可以在你的數據庫上創建一個'procedure'。請參閱http://stackoverflow.com/q/11739793/1065251 這將刪除您的記錄並將auto_increment設置爲儘可能高的值。 @ J.Steen提到 – arnoudhgz 2012-08-03 09:23:32

回答

2

可以後手動設置auto_incrementdelete操作:

ALTER TABLE table_name AUTO_INCREMENT = 91; 
+0

@J Steen - 是的,但只有在表格中沒有更高編號的記錄時,才能填滿這些洞。 – Kevmeister 2012-08-03 09:38:30

+0

@ Omesh - 謝謝,我稍後再說。 – Kevmeister 2012-08-03 09:39:48

+0

是的,否則你將不得不通過在插入新數據時發現漏洞手動提及'id'的值。希望這可以幫助!不要忘記接受最好的答案! – Omesh 2012-08-03 10:06:46

1

您可以從表中刪除自動imcrement和手動要插入一些

@maxid = select max(id) from your_table 
insert into your_table (id) values (@maxid+1) 
+0

@Maxid - 我不能這樣做,它必須自動完成。 – Kevmeister 2012-08-03 09:39:21