2016-03-17 111 views
-1

我有表中有序列號。 1,2,3,4,5等 如果我刪除了ex的數據。 2沒有。然後我的表顯示1,3,4,5,6 .... 我希望它應該重置序列號字段。有人可以幫我嗎?重置mysql中的自動增量值

Pravin

+2

如果你在其他地方使用ID,那將會弄亂整個應用程序。它不被推薦。 –

+4

[如何在MySQL中重置AUTO \ _INCREMENT?]可能重複(http://stackoverflow.com/questions/8923114/how-to-reset-auto-increment-in-mysql) –

+0

我不同意這個是@VickyThakor提到的問題的重複。這是關於重新編號現有的行。 –

回答

0

您可以通過重新創建表格來對其重新編號。如果桌子很小,這可能是最簡單的方法... 100K行或更小。

像這樣的東西會做的伎倆。

RENAME mytable TO mytable_previous; 
CREATE mytable LIKE mytable_previous; 
TRUNCATE TABLE mytable; 
ALTER TABLE mytable AUTO_INCREMENT = 1; 

INSERT INTO mytable 
     (col, col, col) /* name all cols except autoincrementing */ 
SELECT (col, col, col) /* same names, same order */ 
    ORDER BY id; 

這將使INSERT操作可以恢復在相同的順序自動增量爲上表中,但沒有差距。

請注意 ...這可能是一個壞主意。如果在其他表中使用自動增量id列作爲此表的參考,則執行此操作將殘骸您的數據庫。具有DELETE操作的生產數據庫表通常只存在自動增量行號中的空位。這些差距肯定不會造成傷害。