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

修改后数据:

相关推荐
ybb_ymm1 小时前
mysql8在linux下的默认规则修改
linux·运维·数据库·mysql
程序新视界2 小时前
为什么要尽量将MySQL表字段要设置为NOT NULL?
数据库·mysql·dba
慕容雪_5 小时前
MySQL去除表、字段注释
数据库·mysql
Justin_196 小时前
mysql数据库高级特性(一)
数据库·mysql
邂逅you7 小时前
用python操作mysql之pymysql库基本操作
数据库·python·mysql
合作小小程序员小小店7 小时前
web开发,学院培养计划系统,基于Python,FlaskWeb,Mysql数据库
后端·python·mysql·django·web app
白鲸开源8 小时前
最佳实践:基于Apache SeaTunnel从MySQL同步到PostgreSQL
大数据·mysql·postgresql
灰灰老师8 小时前
在Ubuntu22.04和24.04中安装Docker并安装和配置Java、Mysql、Tomcat
java·mysql·docker·tomcat
q_19132846958 小时前
基于RuoYi框架+Mysql的汽车进销存后台管理系统
数据库·vue.js·spring boot·mysql·汽车·个人开发·若依
wuyunhang1234568 小时前
MySQL----锁
数据库·mysql