MySQL表ID重新排序(不清除表数据)

MySQL表ID重新排序(不清除表数据)

2026-08-27 23:00 站长 0 阅读

代码如下(示例):

ALTER table 表名称 AUTO_INCREMENT = 1;
set @i = 0;
update 表名称 set id = (@i:=@i+1);

应用代码,主意table_name需要被替换成你需要改的表名,一共三处!

ALTER TABLE table_name AUTO_INCREMENT = 1;
SET @num := 0;
UPDATE table_name SET id = @num := (@num+1);
ALTER TABLE table_name AUTO_INCREMENT = 1;

总结

无特殊情况 最好不用---truncate
truncate无法通过binlog回滚。
truncate会清空所有数据且执行速度很快。
truncate不能对有外键约束引用的表使用。
执行truncate需要drop权限,不建议给账号drop权限。
执行truncate前一定要再三检查确认,最好提前备份下表数据。

返回新闻中心