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为数据库名

修改后数据:

相关推荐
码熔burning36 分钟前
MySQL 8.0 新特性爆笑盘点:从青铜到王者的骚操作都在这儿了!(万字详解,建议收藏)
数据库·mysql
猫头虎43 分钟前
2025最新OpenEuler系统安装MySQL的详细教程
linux·服务器·数据库·sql·mysql·macos·openeuler
alonewolf_997 小时前
MySQL索引优化实战二:分页、关联查询与Count优化深度解析
数据库·mysql
高溪流10 小时前
3.数据库表的基本操作
数据库·mysql
alonewolf_9910 小时前
深入剖析MySQL锁机制与MVCC原理:高并发场景下的数据库核心优化
数据库·mysql
黄宝康11 小时前
sqlyog密钥亲测有效
mysql
YIN_尹11 小时前
【MySQL】数据类型(上)
android·mysql·adb
想唱rap12 小时前
MYSQL在ubuntu下的安装
linux·数据库·mysql·ubuntu
java1234_小锋12 小时前
MySQL中的乐观锁和悲观锁是什么?
mysql
齐 飞13 小时前
快速删除mysql表中所有数据-TRUNCATE TABLE
数据库·mysql