mysql:重置表自增字段序号

情况一:清空表数据后重置自增 ID

如果你希望清空表中的所有数据,并将自增 ID 重置为初始值(通常为 1)

1、truncate

复制代码
truncate table `tb_dict`;

2、delete 配合 alter 语句

复制代码
delete from `tb_dict`;
alter table `tb_dict` AUTO_INCREMENT=0; 

情况二:保留表数据,重置自增 ID 的起始值

**如果你希望保留表中的数据,只重置自增 ID 的起始值,可以先删除自增属性,更新 ID 值,再重新添加自增属性。**这样会使ID自增序列按照1-n的顺序重新计算,不会造成ID重复。

复制代码
-- 1. 禁用外键约束(如果有外键关联)
SET FOREIGN_KEY_CHECKS = 0;

-- 2. 删除自增属性
ALTER TABLE tb_dict MODIFY id INT;

-- 3. 更新 ID 值
SET @row_number = 0;
UPDATE tb_dict
SET id = (@row_number:=@row_number + 1);

-- 4. 重新添加自增属性
ALTER TABLE tb_dict MODIFY id INT AUTO_INCREMENT;

-- 5. 启用外键约束(如果之前禁用了)
SET FOREIGN_KEY_CHECKS = 1;
相关推荐
周小董6 分钟前
[1369]Windows上安装PostgreSQL
数据库·windows·postgresql
一只积极向上的小咸鱼2 小时前
第一性原理思考:从拆解问题到用实验检验答案
数据库
这个DBA有点耶3 小时前
时序数据库InfluxDB高基数问题深度拆解:内存索引膨胀机制与OOM完整链路
数据库·架构·dba
SL_staff3 小时前
运维救火实录:钉钉考勤API变更引发工资计算异常,我们用JVS-Logic可视化逻辑引擎实现分钟级热修复
java·mysql·全栈
加油yx3 小时前
MySQL数据类型
数据库·mysql
蓝胖的四次元口袋3 小时前
Redis知识梳理(1)
数据库·redis·缓存
夜雪一千3 小时前
MySQL 数据加密实战:从传输、存储到字段级加密,分清场景不踩坑
数据库·mysql
wefg14 小时前
【Redis】C++ 自定义客户端
数据库·redis·缓存
这个DBA有点耶4 小时前
为什么UPDATE比SELECT危险得多?锁范围等于扫描行数
数据库·架构·代码规范
天国梦5 小时前
国密门禁品牌怎么选?2026年最新3个避坑要点
运维·服务器·数据库·python