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

修改后数据:

相关推荐
鹏码纵横37 分钟前
已解决:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 异常的正确解决方法,亲测有效!!!
java·python·mysql
野槐2 小时前
node.js连接mysql写接口(一)
数据库·mysql
麻辣清汤3 小时前
MySQL 索引类型及其必要性与优点
数据库·mysql
-借我杀死庸碌的情怀-5 小时前
navicat可视化页面直接修改数据库密码——mysql、postgresql、mangodb等
数据库·mysql·postgresql
debug 小菜鸟8 小时前
MySQL 主从复制与一主多从架构实战详解
数据库·mysql·架构
weixin_438335408 小时前
MySQL索引优化:回表
数据库·mysql
AA-代码批发V哥9 小时前
MySQL-DDL语句深度解析与实战指南
数据库·mysql
进击的CJR11 小时前
MySQL 8.0 OCP 英文题库解析(十八)
android·mysql·开闭原则
进击的CJR11 小时前
MySQL 8.0 OCP 英文题库解析(十四)
android·mysql·开闭原则
Forest_HAHA11 小时前
<8>-MySQL复合查询
数据库·mysql