我想知道是否有一种简单的方法可以手动将 MySQL 列的自动增量值加一。
用例是使两个表的索引保持同步。就我而言,他们通常都会同时获得一个新条目。但有时只有其中一个获得新条目。这会导致 ID 不同步,这不是我想要的。由于代码的限制,我无法检索任何插入行的 ID,因为我用来与数据库通信的 API 存在相当多的限制。但是,我可以对我的内心内容执行查询。因此,将值增加一个的简单查询将非常受欢迎!
我想知道是否有一种简单的方法可以手动将 MySQL 列的自动增量值加一。
用例是使两个表的索引保持同步。就我而言,他们通常都会同时获得一个新条目。但有时只有其中一个获得新条目。这会导致 ID 不同步,这不是我想要的。由于代码的限制,我无法检索任何插入行的 ID,因为我用来与数据库通信的 API 存在相当多的限制。但是,我可以对我的内心内容执行查询。因此,将值增加一个的简单查询将非常受欢迎!
我对此不做任何承诺,但您可能会逃避以下几点:
对于数据库
mytable
中的表mydb
运行后,您可以验证
ganeshbora.customer
我刚刚在我的 Windows 笔记本电脑(5.7.12)上的一张桌子上试过这个示例代码
执行的示例代码
如图所示,表的 auto_increment 从
14
增加到15
。当然,我以所有特权做到了这一点:所以,如果你有必要的拨款来做到这一点......
试试看 !!!
更新 2018-06-12 14:57 EDT
JohnathanFite 的评论提出了一个有效的观点:
虽然这个答案将在完美世界中修复 AUTO_INCREMENT,但我们并不生活在完美世界中。您需要应用程序停机时间(1-2 分钟)来冻结写入和当前的 auto_increment 值。如果您在实时系统中尝试我的答案,您可以快速搞砸 auto_increment 值,因为针对具有 auto_increment 值的表的 INSERT 回滚会产生间隙。在许多情况下,由于批量插入回滚,间隙增量可能大于 1。
请阅读我的旧帖子
May 12, 2015
:发生插入错误后 MySQL 自动增量列增加,以查看 auto_increment 间隙是如何产生的。