2015-10-26 61 views
0

假設我有2k行,當前最高的auto_increment值是2000.現在,如果我從頂部(1001到2000)刪除了1000行,auto_increment仍然從2001繼續這導致auto_increment的不必要的高值。有沒有辦法可以「自動調整」呢?如何在MySQL中保持連續的auto_increment值

我想是這樣,但低於它不工作

ALTER TABLE `updatelogs` AUTO_INCREMENT = (select max(update_id) from updatelogs); 
+2

[使用子查詢mysql在同一個表中更改auto \ _increment]的可能重複(http://stackoverflow.com/questions/16673269/change-auto-increment-within-same-table-using-subquery-mysql)。 ..你不能這樣做,但你沒有理由這樣做。 –

+0

是的,這似乎是這個問題的重複! 至於這個原因,如果說2000個行的最後1000行被刪除了,那麼這是必須的.​​..自動增量將從2001年開始繼續,我希望它從1001開始繼續! – user2473779

+0

我的感覺是你應該讓MySQL引擎處理自動增量列(關鍵字:** auto **)。 –

回答

0

您可以使用下面的查詢重置自動遞增列後的任何數量的記錄已被刪除:

ALTER TABLE `updatelogs` AUTO_INCREMENT = 1; 

this useful SO post所述,這會將自動增量列重置爲MAX(update_id) + 1

+0

對!我很抱歉...錯過了這個訣竅。現在,我明白你爲什麼早些時候說過它是不必要的! – user2473779