重置自增计数器要点
- TRUNCATE TABLE 表 会清空数据并把自增计数器重置为初始值
- 想保留数据重排 id:先 DROP 自增列再重新添加该列
- ALTER TABLE 表 AUTO_INCREMENT=1 可把起点拉回(受当前最大值限制)
- 删除中间行不会回收已用 id,留下不连续的空洞
- 重排 id 有风险:若别的表引用了这些 id,会引发关联错乱
- 生产环境重排自增前务必确认没有外键依赖
重置自增计数器示例
-- 清空并重置(连结构一起保留,自归零)
TRUNCATE TABLE insect;
-- 保留数据,重建自增列重新编号
ALTER TABLE insect DROP id;
ALTER TABLE insect
ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id);
避坑提醒:重排 id 等于改主键,凡是引用过旧 id 的关联记录都会指错对象;非必要不要在生产做,优先用 TRUNCATE 这种整体重置。