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

修改后数据:

相关推荐
YL200404266 小时前
MySQL-基础篇-函数
mysql
薪火铺子7 小时前
MySQL 分库分表实战:ShardingSphere 深度解析
数据库·mysql
川石课堂软件测试8 小时前
软件测试|常见面试题整理
数据库·python·jmeter·mysql·appium·postman·prometheus
薪火铺子9 小时前
MySQL 锁机制与死锁分析深度解析
数据库·mysql
千百元9 小时前
mysql5.7 定时删除表数据
mysql
消失的旧时光-194311 小时前
SQL 第四篇:JOIN 实战(数据库到底是怎么“拼表”的)
数据库·sql·mysql
eggrall12 小时前
MySQL表的操作
数据库·mysql
秋914 小时前
MySQL 8.0.46 与 MySQL 9.7.0在sql语句方面的区别并举例说明
数据库·sql·mysql
Amazinqc14 小时前
Mysql数据库数据软隔离的并发死锁情况
数据库·mysql·死锁
fTiN CAPA15 小时前
Linux系统离线部署MySQL详细教程(带每步骤图文教程)
linux·mysql·adb