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

修改后数据:

相关推荐
java_cj18 小时前
MySQL 执行原理深度剖析:查询成本计算与优化器内幕
数据库·后端·mysql
Noushiki18 小时前
MySQL索引优化实战:高效查询的黄金法则
数据库·sql·mysql
Dxy123931021619 小时前
Python 操作 MySQL 事务:从入门到避坑
android·python·mysql
爱莉希雅&&&19 小时前
Zabbix监控初步搭建
linux·运维·数据库·mysql·zabbix
狼与自由19 小时前
mysql到clickhouse
数据库·mysql·clickhouse
土狗TuGou19 小时前
SQL内功笔记 · 第6篇:窗口函数的使用ROW_NUMBER等
java·数据库·后端·sql·mysql
就叫飞六吧21 小时前
MySQL 驱动里那个 `cj` 到底是什么?
数据库·mysql
sakoba21 小时前
MySQL常见问题学习
数据库·学习·mysql
quan263121 小时前
20260529,日常开发-查老数据全量更新闭坑
java·mysql·主从·主从延迟
java_cj1 天前
MySQL 8.0 新特性深度解析:降序索引、Doublewrite Buffer 与 redo log 无锁优化
数据库·mysql