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;
相关推荐
好奇的菜鸟2 小时前
Spring Boot 事务失效问题:同一个 Service 类中方法调用导致事务失效的原因及解决方案
数据库·spring boot·sql
不太可爱的叶某人3 小时前
【学习笔记】MySQL技术内幕InnoDB存储引擎——第5章 索引与算法
笔记·学习·mysql
岁岁岁平安3 小时前
Redis基础学习(五大值数据类型的常用操作命令)
数据库·redis·学习·redis list·redis hash·redis set·redis string
量子联盟4 小时前
原创-基于 PHP 和 MySQL 的证书管理系统,免费开源
开发语言·mysql·php
小光学长5 小时前
基于vue框架的防疫科普网站0838x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
极限实验室5 小时前
使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
数据库·docker·devops
飞翔的佩奇5 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
鬼才血脉6 小时前
Linux(centos)安装 MySQL 8
linux·mysql·centos
float_六七8 小时前
SQL六大核心类别全解析
数据库·sql·oracle
Code季风9 小时前
将 gRPC 服务注册到 Consul:从配置到服务发现的完整实践(上)
数据库·微服务·go·json·服务发现·consul