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

修改后数据:

相关推荐
阿巴~阿巴~几秒前
告别命令行:Navicat可视化操作数据库(附安装使用教程)
服务器·数据库·mysql·navicat·可视化操作数据库
zhangyifang_0095 分钟前
MySQL中实现“小计”与“合计”
数据库·mysql
么么...30 分钟前
在 Ubuntu 上安装 Docker 并部署 MySQL 容器
linux·运维·经验分享·笔记·mysql·ubuntu·docker
·云扬·1 小时前
Linux系统下MySQL服务器关键配置优化指南
linux·服务器·mysql
·云扬·1 小时前
MySQL分页查询优化:从基础到进阶实践
数据库·mysql·oracle
程序猿20232 小时前
索引的使用及设计规则
mysql
·云扬·2 小时前
MySQL Join关联查询:从算法原理到实战优化
数据库·mysql·算法
田超凡3 小时前
深入理解MySQL_5 BufferPool缓冲池
mysql·java-ee
ZePingPingZe5 小时前
MySQL-InnoDB锁与事务
数据库·mysql
h7997105 小时前
高效统计mysql数据踩坑笔记
数据库·mysql