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

修改后数据:

相关推荐
暴力求解几秒前
MySQL---数据类型
数据库·mysql
我星期八休息3 小时前
Linux系统编程—mmap文件映射
java·linux·运维·服务器·数据库·mysql·spring
网管NO.14 小时前
MySQL 8.0 JSON 操作 | 新增 / 查询 / 修改,适配新兴业务
数据库·mysql·json
IT策士4 小时前
MySQL 系列:第1篇 数据库时代与MySQL
数据库·mysql
我爱学习好爱好爱5 小时前
Docker Compose部署SpringBoot2+Vue3+redis项目(Rockylinux9.6):MySQL 主从复制实战
redis·mysql·docker
不吃土豆的马铃薯5 小时前
高并发服务器数据库连接池设计详解
服务器·网络·数据库·c++·mysql
Nontee6 小时前
新手数据库进阶:大白话图解MySQL的“官方档案”——Binlog
数据库·mysql
基德爆肝c语言6 小时前
MySQL:数据库基础
数据库·mysql
左直拳1 天前
mysql分区表自动归档
mysql·分区表·分区表归档
haven-8521 天前
MySQL事务ACID、隔离级别、MVCC、幻读解决
数据库·mysql