2013-05-10 33 views
1

我有一個表與索引ID,如:我可以設置什麼樣的價值MySQL的AUTO_INCREMENT,以便將其重置爲下一個可用值

ID Name 
1 abc 
2 def 
4 ghi 
9 jkl 
10 mno 
11 xyz 

AUTO_INCREMENT值在在這個例子中選址。

如果我用的ID 10和11刪除2行,將ALTER TABLE TABLE_NAME AUTO_INCREMENT=1重置AI值或者它會嘗試將其設置爲,從而打破我的表?

我想設置一個標準的AI重置,在所有情況下將值設置爲下一個可用序列。

感謝您確認設置查詢語句的正確方法。

+0

你不應該使用auto_increment。使用排名欄。 – 2013-05-10 19:05:13

+0

?從來沒有聽說過或使用@juergend - 我需要看看。謝謝 – 2013-05-10 19:05:49

+0

不知道排名欄與我的問題 – 2013-05-10 19:07:55

回答

0

ALTER TABLE table_name AUTO_INCREMENT=1做了我所希望的事情。

0

使用ALTER TABLE,當然:

ALTER TABLE TABLE_NAME AUTO_INCREMENT = 1;

但是,您不能將其重置爲小於所使用的最大值,因爲您需要使用ALTER TABLE DROP COLUMN刪除該列,並使用ALTER TABLE ADD COLUMN [col] AUTO INCREMENT重新添加該列。然而(對MySQL總是有個警告),如果你的表使用NDB引擎,這將不起作用。

+0

嗯,我猶豫在我的數據庫上測試它,但我沒有測試ALTER TABLE table_name AUTO_INCREMENT = 1 AI值等於** 1 **,它的工作。你認爲這樣做很危險嗎? – 2013-05-10 19:15:23

相關問題