我的表有序列号。 1,2,3,4,5等 如果我删除ex的数据。 2没有。然后我的表显示1,3,4,5,6 .... 我希望它应该重置序列号字段。有人可以帮助我吗?
普拉
答案 0 :(得分: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
操作以与上一个表相同的顺序重做自动增量,但没有间隙。
BEWARE ......这可能是一个坏主意。如果在其他表中使用自动增量id
列作为对此表的引用,则执行此操作将 wreck 您的数据库。具有DELETE操作的生产数据库表通常仅存在自动增量行号中的间隙。这些差距肯定不会造成伤害。