mysql无法从存储引擎读取自动增量值

ash*_*shu 23 mysql database auto-increment

我有一个id字段的mysql表作为自动增量.

当我向表中插入值时出现错误

1467 - 无法从存储引擎读取自动增量值

同时show table status向我展示了具有自动增量的字段

18446744073709551615 作为Auto_increment值.

什么问题可以帮助我......?

Ale*_*kov 26

我有同样的错误但在我的情况下我在表中有大约1.5k的记录.我通过重置AUTO INCREMEN来修复它:

ALTER TABLE `table_name`  AUTO_INCREMENT = 1
Run Code Online (Sandbox Code Playgroud)


Mar*_*rco 16

问题绝对可能是:将18446744073709551615转换为十六进制,你会发现
$ FFFF-FFFF-FFFF-FFFF.
如果您的字段是未签名的64位,则达到其限制.


Mik*_*ike 16

我在运行插入语句几周后开始收到此错误:

Duplicate entry '127' for key 'PRIMARY'
Run Code Online (Sandbox Code Playgroud)

...即使我的桌子设置为自动增量.我进去并将auto_increment值从127更改为128然后我开始收到此错误:

1467 - Failed to read auto-increment value from storage engine
Run Code Online (Sandbox Code Playgroud)

我最终发现该表最初是使用tinyint列创建的,因为ID不是标准的int ...所以基本上它无法理解大于127的数字.我将列类型切换为正确的整数,这解决了问题.

希望有人帮助:)

  • 帮助过我!我整天都在撞头,这让我省了很多头痛。 (2认同)

che*_*zeh 7

就我而言,我犯了一个愚蠢的错误.我之前更改了我的表并将AUTO_INCREMENT列的名称更改IDid.因此,如果列名称区分大小写,则后续插入无法找到原始列.


Shi*_*nbo 5

实际上,您可以简单地更改列以删除其auto_increament属性并auto_increment再次将其设置为.就我而言,这种方式确实有效.

  • 然后在插入记录时会遇到重复的键错误(假设该列是唯一键和/或主键)。辛苦了 (2认同)