我有一个带有自动增量主键的 MySQL 表。我删除了表格中间的一些行。例如,现在我在 ID 列中有这样的内容:12、13、14、19、20。我删除了 15、16、17 和 18 行。
我想重新分配/重置/重新排序主键,以便具有连续性,即将 19 变为 15,将 20 变为 16,依此类推。
我该怎么做?
尽管这个问题似乎很老了,但我会为在这里搜索的人发布答案。
SET @count = 0;
UPDATE `users` SET `users`.`id` = @count:= @count + 1;
如果该列在其他表中用作外键,请确保使用ON UPDATE CASCADE
而不是默认的ON UPDATE NO ACTION
这些表中的外键关系。
此外,为了重置AUTO_INCREMENT
算了,你可以立即发出下面的语句。
ALTER TABLE `users` AUTO_INCREMENT = 1;
对于 MySQL,它将将该值重置为MAX(id) + 1
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)