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

修改后数据:

相关推荐
会飞的架狗师2 天前
【MySQL体系】第1篇:从MySQL架构原理到存储的解析
后端·mysql
BXCQ_xuan2 天前
软件工程实践四:MyBatis-Plus 教程(连接、分页、查询)
spring boot·mysql·json·mybatis
玉衡子2 天前
七、InnoDB底层原理与日志机制
java·mysql
cyforkk2 天前
MySQL 唯一约束:从基础到实战,解决数据重复的核心工具
数据库·mysql
快乐肚皮2 天前
SQL调优全攻略:从原理到实战
mysql
ZHOU_World2 天前
数据库主从同步
数据库·mysql
茉莉玫瑰花茶2 天前
MySQL 用户管理
数据库·mysql
博一波2 天前
MySQL 备份与复制:类似“手机数据管理”
数据库·mysql
专注代码七年2 天前
查询 mysql中 所有的 非空记录字段
数据库·mysql
程序新视界2 天前
仅仅会用MySQL的EXPLAIN还不够,还需要会用EXPLAIN ANALYZE
mysql