平时我们使用MySQL时,通常每一个表都会有一个自增主键ID,每新增一条数据,ID值就会自增1。但在8.0之前版本的MySQL中,这个自增值会存在一个回溯的问题。

例如,在一个新表中插入三条主键为1、2、3的数据行,这时候用SHOW CREATE TABLE命令查看该表的AUTO_INCREMENT的值是4,这是没问题的。

然后把ID=3的数据行删掉,再次查询AUTO_INCREMENT的值,依然是4,这也是没问题的。

但如果重启一下MySQL,这个值就会变回3,而不是4,发生了回溯。

这是因为AUTO_INCREMENT的值只存储于内存中,不会持久化到磁盘,每次启动数据库时,MySQL会通过计算max(auto_increment字段) + 1,重新作为该表下一次的主键ID的自增值。这个问题直至MySQL 8.0才修复。

MySQL自增主键值回溯问题相关推荐

  1. 重置mysql自增主键值的方法

    重置mysql自增主键的值方法 show create table [表名] 查看当前主键索引值alter table [表名] auto_increment = [你希望的值] 设置你希望的索引值 ...

  2. hive导数据到mysql 自增主键出错_老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”...

     前言"又要开始新项目了,一顿操作猛如虎,梳理流程加画图.这不,开始对流程及表结构了.我:吧啦吧啦吧啦 --老大:这个建表为啥还设置个自增 id ?直接用流水号(用户号/产品号)当主键不就行 ...

  3. 通过源码分析Mybatis是如何返回数据库生成的自增主键值?

    在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象. 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增 ...

  4. datatable如何生成级联数据_通过源码分析Mybatis是如何返回数据库生成的自增主键值?...

    在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象. 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增 ...

  5. mysql自增主键返回---创建成功后返回用户的ID

    mysql自增主键返回 查询id的sql SELECT LAST_INSERT_ID() 通过修改User.xml映射文件,可以将mysql自增主键返回: 如下添加selectKey 标签 <! ...

  6. mybatis获取mysql自增主键_Mybatis获取数据库自增主键

    一般我们都为将表中主键列设置为自增,当我们执行插入语句时,比如这样 //测试添加 Employee employee = new Employee(null, "jerry4",n ...

  7. 美团面试:MySQL 自增主键一定是连续的吗?

    美团问数据库比较多,分享一位读者面试美团遇到的关于 MySQL 自增主键的问题. 下面是正文. 众所周知,自增主键可以让聚集索引尽量地保持递增顺序插入,避免了随机查询,从而提高了查询效率 但实际上,M ...

  8. mybatis mysql自增主键_mybatis 自增主键配置

    mybatis 自增主键配置 mybatis自增主键配置(?) mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同.基本上经常会 遇到的就是 Oracle Seque ...

  9. MySQL自增主键一定是连续的吗

    测试环境: MySQL版本:8.0 数据库表:T (主键id,唯一索引c,普通字段d) 如果你的业务设计依赖于自增主键的连续性,这个设计假设自增主键是连续的.但实际上,这样的假设是错的,因为自增主键不 ...

  10. mysql自增主键设置

    mysql自增主键设置 在数据库应用中,经常希望在每次插入新纪录时,系统自动生成字段的主键值.可以通过为表主键添加AUTO_INCREMENT关键字来实现. 默认情况下,在MYSQL中AUTO_INC ...

最新文章

  1. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 19 章 服务器配置_19.8. 错误报告和日志...
  2. 什么时候会引起索引失效
  3. android 自定义paint,Android中自定义常用的三个对象解析(Paint,Color,Canvas)
  4. 阿里云视频云编码优化的思考与发现
  5. postman和部署在 SAP 云平台上的SAP UI5应用发送同样的HTTP请求,为何前者成功,后者失败?
  6. [COGS58] 延绵的山峰
  7. 利用好手头的资源解决海量语料资源收集以及利用哈工大的LTP云平台解决依存句法和语义依存分析
  8. 深度学习中的损失函数总结以及Center Loss函数笔记
  9. 仿真器和模拟器的区别是什么?
  10. 文献检索的正确姿势——新生培训
  11. C ++ 数组 | 多维数组(MultiDimensional Arrays)_2
  12. 4.8_adapter_结构型模式:适配器模式
  13. C++---内联函数与宏
  14. Web常用字體-Font-Family
  15. 集成服务入门(实验7)数据流的目标
  16. 从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。...
  17. codewars题目
  18. 路由器和三层交换机的基本实验操作
  19. 分体式蓝牙耳机有哪些推荐?好用的分体式蓝牙耳机推荐
  20. 禁欲28天!一宅男居然肝出如此详细Web安全学习笔记,学妹看完直接抽搐了!(第二弹)

热门文章

  1. AIX系统中 .toc文件是做什么用的
  2. 申论高分作者心得分享——站在政府的角度写申论
  3. VTN系列多通道振弦模拟信号采集仪常规操作
  4. 如何在Mac电脑上调整日期和时间?如何高效管理时间?
  5. 平面设计之PS(前)
  6. 什么是等级保护, 等保2.0详解
  7. SDL —— SDL_mixer
  8. 数据分析宝典(上):四步轻松搞定指标
  9. Power Apps 中显示 SharePoint Online 数据
  10. Android 根据名字获取经纬度,Android 根据城市获取经纬度 适配Android 7.0 、Android 8.0...