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;
相关推荐
Java烘焙师21 分钟前
架构师必备:实时对账与离线对账
hive·mysql·架构·对账
许野平1 小时前
Rust:如何访问 *.ini 配置文件?
开发语言·数据库·rust·ini·configparser
程序终结者2 小时前
超越边界:MongoDB 16MB 文档限制的 pragmatic 解决方案
数据库·mongodb
正在走向自律2 小时前
SelectDB数据库,新一代实时数据仓库的全面解析与应用
数据库·数据仓库·实时数据仓库·selectdb·云原生存算分离·x2doris 迁移工具·mysql 协议兼容
昵称是6硬币2 小时前
MongoDB系列教程-第四章:MongoDB Compass可视化和管理MongoDB数据库
数据库·mongodb
Full Stack Developme3 小时前
Java 日期时间处理:分类、用途与性能分析
java·开发语言·数据库
雪碧聊技术5 小时前
存储过程的介绍、基本语法、delimiter的使用
数据库·存储过程的基本语法·delimiter的使用
_码农121386 小时前
spring boot 使用mybatis简单连接数据库+连表查询
数据库·spring boot·mybatis
掘根8 小时前
【MySQL集群架构与实践5】使用Docker实现水平分片
mysql·docker·架构
TTBIGDATA9 小时前
【支持Ubuntu22】Ambari3.0.0+Bigtop3.2.0——Step7—Mariadb初始化
数据库·ambari·hdp·mariadb·bigtop·ttbigdata·hidataplus