-1
我有表中有序列號。 1,2,3,4,5等 如果我刪除了ex的數據。 2沒有。然後我的表顯示1,3,4,5,6 .... 我希望它應該重置序列號字段。有人可以幫我嗎?重置mysql中的自動增量值
Pravin
我有表中有序列號。 1,2,3,4,5等 如果我刪除了ex的數據。 2沒有。然後我的表顯示1,3,4,5,6 .... 我希望它應該重置序列號字段。有人可以幫我嗎?重置mysql中的自動增量值
Pravin
您可以通過重新創建表格來對其重新編號。如果桌子很小,這可能是最簡單的方法... 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操作的生產數據庫表通常只存在自動增量行號中的空位。這些差距肯定不會造成傷害。
如果你在其他地方使用ID,那將會弄亂整個應用程序。它不被推薦。 –
[如何在MySQL中重置AUTO \ _INCREMENT?]可能重複(http://stackoverflow.com/questions/8923114/how-to-reset-auto-increment-in-mysql) –
我不同意這個是@VickyThakor提到的問題的重複。這是關於重新編號現有的行。 –