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

修改后数据:

相关推荐
呆瑜nuage11 小时前
MySQL表约束详解:8大核心约束实战指南
数据库·mysql
元宝骑士11 小时前
FIND_IN_SET使用指南:场景、优缺点与MySQL优化策略
后端·mysql
猿小喵12 小时前
MySQL慢查询分析与处理-第二篇
数据库·mysql·性能优化
Y0011123612 小时前
MySQL-进阶
开发语言·数据库·sql·mysql
前进的李工13 小时前
MySQL角色管理:权限控制全攻略
前端·javascript·数据库·mysql
爱丽_13 小时前
MySQL `EXPLAIN`:看懂执行计划、判断索引是否生效与排错套路
android·数据库·mysql
牧魂.13 小时前
MySQL 主从延迟根因诊断法
mysql·高并发·主从复制·主从延迟·数据库调优
东北甜妹13 小时前
MySQL数据库高级特性
mysql
Trouvaille ~13 小时前
【MySQL篇】从零开始:安装与基础概念
linux·数据库·mysql·ubuntu·c·教程·基础入门
Yana.nice14 小时前
MySQL 事务的四大特性(ACID)
数据库·mysql·oracle