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

修改后数据:

相关推荐
shaoming377610 小时前
MySQL篇之对MySQL进行参数优化,提高MySQL性能
数据库·mysql
程序员夏末10 小时前
【MySQL | 第一篇】 深入理解三大日志(undo Redo Bin)
数据库·mysql
ruxingli11 小时前
MySQL优化
数据库·mysql
feng68_11 小时前
MySQL集群主从复制
linux·运维·数据库·mysql·adb
Xzq21050912 小时前
Mysql API学习
数据库·学习·mysql
宁小法12 小时前
MySQL - 读写延迟, 并发导致的问题-分析与解决
数据库·mysql·主从延迟·并发请求
流星白龙12 小时前
【MySQL】0.MySQL安装
数据库·mysql
captain37612 小时前
初识MySQL(My structured query language)
数据库·mysql
秦渝兴12 小时前
从手工高可用到全容器化:我的 Keepalived+Nginx+Tomcat+MySQL 项目迁移实战
linux·运维·mysql·nginx·容器·tomcat
蓝黑202013 小时前
SQL的update语句更新顺序的坑
数据库·sql·mysql