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

修改后数据:

相关推荐
编程小Y1 小时前
如何优化MySQL的查询性能?
数据库·mysql
编程小Y5 小时前
MySQL原理
数据库·mysql
小石头 100865 小时前
MySQL 视图:把复杂变简单的“虚拟化”艺术
数据库·mysql
DB虚空行者6 小时前
MySQL误删/批量更新数据恢复实战:基于Flashback工具的完整方案
数据库·mysql
九皇叔叔6 小时前
MySQL Next-Key Lock 锁表事故全拆解(从现象到根治)
数据库·mysql
短剑重铸之日7 小时前
7天读懂MySQL|Day 4:锁与并发控制
数据库·mysql·架构
Java水解7 小时前
MySQL定时任务详解 - Event Scheduler 事件调度器从基础到实战
后端·mysql
爱学习的小可爱卢8 小时前
数据库MySQL——MySQL 可重复读隔离级别:Read View 底层原理与幻读问题深度剖析(面试必知)
数据库·mysql
lkbhua莱克瓦249 小时前
基础-事务
开发语言·数据库·笔记·mysql·事务
luoluoal10 小时前
基于python的自然语言处理技术的话题文本分类的研究(源码+文档)
python·mysql·django·毕业设计·源码