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

 更新时间:2024年11月11日 09:28:17   作者:浅天yxc  
本文介绍了MySQL数据库删除数据后自增ID不连续的问题,文中通过2种方法解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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不连续内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径

    MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径

    最近mysql官方网站的安装包从5.5-5.7起都是新版的安装界面,各种环境要求支持,看样子以后老点的系统安装都够费劲的了,这里脚本之家小编特为大家整理一下安装步骤与方法
    2016-04-04
  • MYSQL中SWITCH语句和循环语句举例详解

    MYSQL中SWITCH语句和循环语句举例详解

    MySQL提供了多种循环语句来实现循环操作,其中包括while循环、loop循环、repeat循环和非标准的goto循环,下面这篇文章主要给大家介绍了关于MYSQL中SWITCH语句和循环语句的相关资料,需要的朋友可以参考下
    2024-06-06
  • mysql主从同步原理及应用场景示例详解

    mysql主从同步原理及应用场景示例详解

    这篇文章主要为大家介绍了mysql主从同步原理及应用场景示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • MySQL数据库列的增删改实现方法

    MySQL数据库列的增删改实现方法

    这篇文章主要介绍了MySQL数据库列的增删改实现方法,结合实例形式分析了mysql数据库针对列的增加、修改、删除等相关操作sql命令及使用技巧,需要的朋友可以参考下
    2019-03-03
  • 详解MySQL8中的新特性窗口函数

    详解MySQL8中的新特性窗口函数

    MySQL8 窗口函数是一种特殊的函数,它可以在一组查询行上执行类似于聚合的操作,但是不会将查询行折叠为单个输出行,而是为每个查询行生成一个结果,本文就来和大家简单讲讲它的用法,感兴趣的可以了解一下
    2023-06-06
  • linux下安装mysql及mysql.sock问题

    linux下安装mysql及mysql.sock问题

    最近在linux上装mysql时遇到一些棘手的问题,百思不得其解,下面小编给大家带来了linux下安装mysql及mysql.sock问题,感兴趣的朋友一起看看吧
    2018-03-03
  • Mysql自增主键id不是以此逐级递增的处理

    Mysql自增主键id不是以此逐级递增的处理

    这篇文章主要介绍了Mysql自增主键id不是以此逐级递增的处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 揭秘SQL优化技巧 改善数据库性能

    揭秘SQL优化技巧 改善数据库性能

    这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础,重点讲述如何优化SQL,来提高数据库的性能
    2012-01-01
  • 一文解析MySQL的MVCC实现原理

    一文解析MySQL的MVCC实现原理

    这篇文章主要介绍了MySQL的MVCC实现原理,MVCC全称是Multi-Version Concurrency Control是一种并发控制的方法,通过维护一个数据的多个版本,减少读写操作的冲突
    2022-08-08
  • MySQL存储过程的创建、调用与管理详解

    MySQL存储过程的创建、调用与管理详解

    这篇文章主要给大家介绍了关于MySQL存储过程的创建、调用与管理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论