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

修改后数据:

相关推荐
清风徐来QCQ2 小时前
阿里云centos7-mysql的使用
mysql·阿里云·云计算
Rhys..3 小时前
Python&Flask 使用 DBUtils 创建通用连接池
开发语言·python·mysql
舒一笑3 小时前
为什么where=Version就是乐观锁了?
后端·mysql·程序员
小熊h3 小时前
MySQL集群高可用架构——组复制 (MGR)
linux·数据库·mysql
sunshine-sm4 小时前
CentOS Steam 9安装 MySQL 8
linux·运维·服务器·数据库·mysql·centos·centos stream
markfeng87 小时前
一文搞懂MySQL字符集
sql·mysql
小白不想白a7 小时前
【MySQL】常用SQL语句
数据库·sql·mysql
RestCloud7 小时前
从MySQL到StarRocks:全量与增量同步的最佳实践
数据库·mysql·api
毕设源码纪师姐8 小时前
计算机毕设 java 高校机房综合管控系统 基于 SSM+Vue 的高校机房管理平台 Java+MySQL 的设备与预约全流程系统
java·mysql·课程设计