MySQL数据库删除数据自增ID不连续的实现示例
目录
- 解决方法
- 性能优化
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 javascript'202android4-10-12 00:00:00' do call p_reset_id();
到此这篇关于MySQL数据库删除数据自增ID不连续的实现示例的文章就介绍到这了,更多相关MySQL 删除数据自增ID不连续内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.comwww.devze.com)!
精彩评论