MySQL自增主键值回溯问题

MySQL自增主键值回溯问题平时我们使用MySQL时,通常每一个表都会有一个自增主键ID,每新增一条数据,ID值就会自增1。但在8.0之前版本的MySQL中,这个自增值会存在一个回溯的问题。例如,在一个新表中插入三条主键为1、2、3的数据行,这时候用SHOWCREATETABLE命令查看该表的AUTO_INCREMENT的值是4,这是没问题的。然后把ID=3的数据行删掉,再次查询AUTO_INCREMENT的值,依然是4,这也是没问题的。但如果重启一下MySQL,这个值就会变回3,而不是4,发生了回溯。这是因为AUTO_I

大家好,又见面了,我是你们的朋友全栈君。

平时我们使用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才修复。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149188.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用 Unity 进行网络游戏开发(一)

    用Unity进行网络游戏开发(一)这是我之前写的了,一直保存在电脑里,现在学习写博客。希望多和大家交流,共同进步,文章中说得不好的地方请指出,谢谢!使用Unity3D进行网络游戏开发一.Unity3d简介   Unity3d是时下比较流行的一款游戏引擎,流行是因为用它做游戏很方便,无论是3d还是2d都会有非常好的效果,即便某些朋友不懂编程,也可以通过U

    2022年4月12日
    728
  • java标识符与关键字_4、Java标识符和关键字

    java标识符与关键字_4、Java标识符和关键字标识符:Java对各种变量,方法和类等要素命名时使用的字符序列称为标识符。(凡是自己可以起名的地方都叫标识符,都遵循标识符的规则)Java的命名规则:1、标识符由字母、下划线”_”、美元符”$”或数字组成;2、标识符应以字母、下划线、美元符开头;3、Java标识符大小写敏感,长度无限制;4、Java标识符选取应注意“见明知意”且不能与Java语言的关键字重名(约定俗成)合法的标识符HelloWor…

    2022年7月7日
    19
  • vue .js绑定checkbox并获取、改变选中状态「建议收藏」

    vue .js绑定checkbox并获取、改变选中状态「建议收藏」vue.js绑定checkbox并获取、改变选中状态1.html<divclass=”weui-cellsweui-cells_checkboxfont14″v-for=”iteminitems”><labelclass=”weui-cellweui-check__label”><…

    2022年6月18日
    106
  • win7彻底卸载iis

    win7彻底卸载iis

    2021年10月12日
    53
  • https和ssl的区别_ssl认证

    https和ssl的区别_ssl认证https加密、解密、及验证过程如下图:HTTPS怎么实现安全传输的?建立安全传输HTTPS中,客户端首先打开一条到WEB服务器443端口的连接。一旦建立了TCP连接,客户端和服务器就会初始化SSL层,对加密参数进行沟通,并交换密钥。握手完成后,SSL初始化就完成了,客户端就可以将请求报文发送给安全层了。重点SSL握手发送已加密的HTTP报文之前,客户端和服…

    2022年10月2日
    1
  • 苹果电脑(Mac mini或Macbook或iMac)恢复出厂设置「建议收藏」

    苹果电脑(Mac mini或Macbook或iMac)恢复出厂设置「建议收藏」苹果电脑(Macmini或Macbook或iMac)恢复出厂设置,首先要做好如下的准备:第一:数据的备份;第二:保证正常的wifi连接;第三:有线的鼠标键盘连接;具体恢复操作步骤:步骤一:电脑启动时,按下键盘组合键(option+command+R,或alt+command+R);然后显示器屏幕上会显示小地球,且出现倒计时;步骤二:倒计时结束后,出现macOS实用工具,选择第四个…

    2022年6月16日
    574

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号