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

修改后数据:

相关推荐
O***Z6161 分钟前
三分钟内快速完成MySQL到达梦数据库的迁移
数据库·mysql
菜鸟小九2 小时前
mysql(锁)
数据库·mysql·oracle
云和数据.ChenGuang3 小时前
运维面试题之oracle和mysql单表最大容量
运维·mysql·oracle
Z***G4794 小时前
【零基础学Mysql】常用函数讲解,提升数据操作效率的利器
数据库·mysql
aml258__4 小时前
MySQL 数据库管理入门:从创建到删除(T1)
数据库·mysql·oracle·初学数据库
beata4 小时前
MySQL 索引你真的用对了吗?
mysql
TDengine (老段)5 小时前
MySQL/PG/TDengine 时间范围 SQL 表达式
sql·mysql·tdengine
大白的编程日记.5 小时前
【计算网络学习笔记】MySql的多版本控制MVCC和Read View
网络·笔记·学习·mysql
gAlAxy...9 小时前
SpringMVC 响应数据和结果视图:从环境搭建到实战全解析
大数据·数据库·mysql
vx_dmxq21110 小时前
【微信小程序学习交流平台】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·微信小程序·小程序·idea