当前位置: 代码网 > it编程>数据库>Mysql > MySQL数据库删除数据自增ID不连续的实现示例

MySQL数据库删除数据自增ID不连续的实现示例

2024年11月12日 Mysql 我要评论
mysql数据库删除数据后,再新增数据就会导致自增id不连续解决方法1. 删除一行数据后,其后数据自增id值减一(mapper.xml)update 表名 set id = id - 1 where

mysql数据库删除数据后,再新增数据就会导致自增id不连续

解决方法

1. 删除一行数据后,其后数据自增id值减一(mapper.xml)

update 表名 set id = id - 1 where id > #{deleteid}

2.  更新下一个自增id值

当设置值小于 max(id) 时,会自动设置为 max(id)+1 ,故一般设置为1就好

alter table 表名 auto_increment = 1

性能优化

上述方法每次删除数据都要执行,可通过mysql的定时任务实现性能优化——每天零点进行自增id重置

1. 定义重置自增id的存储过程

create procedure p_reset_id()
begin
    set @i = 0;
    update 表名 set id = (@i := @i + 1);
    alter table 表名 auto_increment = 1;
end

2.  开启事件调度器

show variables like 'event_scheduler';
set global event_scheduler = on;

3. 定义事件/定时任务

create event e_reset_id
on schedule every 1 day 
starts '2024-10-12 00:00:00'
do call p_reset_id();

到此这篇关于mysql数据库删除数据自增id不连续的实现示例的文章就介绍到这了,更多相关mysql 删除数据自增id不连续内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com