-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提到的问题的重复。这是关于重新编号现有的行。 –