我有一个带有自动增量主键的 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
。
关于mysql - 重新排序/重置自动增量主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/740358/