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)
上一篇 2022年6月16日 下午5:46
下一篇 2022年6月16日 下午5:46


相关推荐

  • 12款Py程序员必备PyCharm插件,亲测过~推荐

    12款Py程序员必备PyCharm插件,亲测过~推荐最近使用Python,烧脑的我,使用编程软件肯定少不了去安装一些非常好用的插件,目的为了代码高效和方便的开发。以下是我亲测过的一些插件,很实用!!!!下载位置在输入框种输入要安装的插件名称即可下载。插件合集1..ignore我们做的每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。2.CSVPlugin(必备推荐)它可以让CSV各个列之间区别明显,很清晰的显示各种颜色的高亮.3.CodeGlan..

    2022年6月24日
    33
  • 1bit等于多少字节,换算方法??[通俗易懂]

    1bit等于多少字节,换算方法??[通俗易懂]1比特(bit)=0.125字节(b)1B就是1个字节。Byte、KB、B、MB、GB之间的关系是:Bit——比特B——字节KB——千字节MB——兆字节GB——吉字节TB——太字节1B=8Bit计算机64位的=8个字节…

    2022年5月26日
    87
  • 工具类之Python编译器Pycharm添加解释器

    工具类之Python编译器Pycharm添加解释器工具类之 Python 编译器 Pycharm 添加解释器连接远程服务器 1 点击左上角的 file 右键选择 setting 找到 projectinter 点击 showall 2 点击 号新增解释器 找到 sshinterpret 输入 host 服务器地址 port 端口号 username 用户名 点击 next 输入 password 密码 添加解释器注意 这里的服务器是已经安装了 Python 或 anaconda 的哦 1 选择远程解释器路径 一般在 root

    2026年3月27日
    4
  • Matlab fmincon函数用法

    Matlab fmincon函数用法原文地址:fmincon函数用法”>Matlab fmincon函数用法作者:长笛人倚楼Gloria这个函数在之前优化工具箱一文中已经介绍过,由于其应用广泛,所以这里通过实例单独整理一下其用法。一、基本介绍求解问题的标准型为minF(X)s.tAXAeqX=beqG(x)Ceq(X)=0VLB 其中X为n维变元向量,G(x)与Ceq(X)均为非线性函数组成的

    2022年6月22日
    58
  • 页面处理指令中的AutoEventWireup

    页面处理指令中的AutoEventWireup   在页面处理指令中有个AutoEventWireup,当时不知什么原因就删了,接着就除了问题.后来才知道它是指页面的事件是否自动连网。如果启用事件自动连网,则为true;否则为false。如果页面处理指令的AutoEventWireup属性被设置为true(默认为true),该页框架将自动调用页事件。所以如果是使用code-behind技术,就要把AutoEventWireu

    2022年5月26日
    48
  • 用AI配合MCP快速生成n8n工作流

    用AI配合MCP快速生成n8n工作流

    2026年3月15日
    2

发表回复

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

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