mysql中删除数据后,新增数据时id会跳跃,主键自增id不连续

引言:

在使用MySQL数据库时,有时候我们需要删除某些记录,但是删除记录后可能会导致表中的id不再连续排序。

如何实现删除记录后让id重新排序的功能。

如图:

删除数据后,中间的id不会自动连续。

下面有两种方法进行重新排序:
方法一:

删除表中id,重新添加id字段:

java 复制代码
ALTER TABLE test DROP id;
 
ALTER TABLE test ADD id int(20) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST

其中,first表示将id字段放到第一个位置,test为数据库名

方法二:

java 复制代码
SET @i=0;
 
UPDATE test SET `id`=(@i:=@i+1); 
 
ALTER TABLE test AUTO_INCREMENT=1;

其中:

设置变量i = 0

把表中的id字段都重新修改一遍,从1开始

设置自增值为1,防止下次插入数据发生自增字段不连续的情况

test为数据库名

修改后数据:

相关推荐
V1ncent Chen8 小时前
SQL大师之路 10 连接基础
数据库·sql·mysql·数据分析
原来是猿8 小时前
MySQL【表的内外连接】
数据库·mysql
安当加密8 小时前
MySQL 防勒索终极防线:TDE 透明加密 + DBG 动态权限控制双重保护实战
数据库·mysql·adb
sevenlin8 小时前
MySQL数据库(SQL分类)
数据库·sql·mysql
czlczl200209258 小时前
Mysql log 杂知识
数据库·mysql
吾诺8 小时前
Java进阶,时间与日期,包装类,正则表达式
java·mysql·正则表达式
未来龙皇小蓝8 小时前
【MySQL-索引调优】05:索引相关概念
数据库·mysql·性能优化
码农阿豪8 小时前
MySQL 动态分区管理:自动化与优化实践
数据库·mysql·自动化
qiuyuyiyang9 小时前
MySQL:drop、delete与truncate区别
数据库·mysql
cga19479 小时前
MySQL:数据查询-limit
数据库·mysql