MySQL自动递增失败

我有一个主键和自动增量int(11)数据types的一列的表。

当我试图插入到该表中时,出现以下错误。 无法从存储引擎Query中读取自动增量值

当我重新启动MySQL服务,它工作正常。

我相信,这是没有问题的“自动增量数超过”,因为当我试图从外面插入它正在正确插入。

这是自动增量或其他问题。

基本上这是MySQL中的一个错误导致的问题,但解决方法很简单。 当表的自动递增值超出限制时,会发生问题。

只要在MySQL中运行这个SQL查询来修复这个bug。

ALTER TABLE table_name AUTO_INCREMENT = 1

Table_name是插入数据时发现错误的表的名称。 即使您的表中有logging,也不要担心Auto_Increment的值。

我看到一个bigint(20)键的表上相同的错误消息,看着输出

 mysql>show table status like 'my_big_table'; 

这显示了:

 Auto_increment: 0 

当它应该是:

 Auto_increment: 2157452851 

(因为插入的最后一行有一个键值2157452850)没有解释为什么Auto_increment值为0,但它阻止了我们的应用程序的插入。

我试图做ALTER TABLE来改变Auto_increment的值,但很明显,整个表将被重build,在这个大小的桌子上将花费很多小时,所以我取消了更改。

我find的解决scheme是显式添加一个下一个键值的行:

 mysql> INSERT INTO `my_big_table` VALUES (2157452851,22808084,71,36376,'2013-03-16 15:09:55','2013-03-16 15:07:18','2013-03-16 15:09:55','Sent',NULL,7426); Query OK, 1 row affected (0.03 sec) 

这纠正了Auto_index值。

 mysql> show table status like 'my_big_table'\G Auto_increment: 2157452852 

希望这会帮助别人。

当我试图插入到该表中时,出现以下错误。 无法从存储引擎Query中读取自动增量值

这可能是一个MySQL错误( #35602 , # 42566 )。 试试这个解决方法。

在Windows 7 64位上运行的mysql版本是5.1.30的wamp中,它没有工作。 通过运行alter table它发生了一些事情(我看到更改的行),但值不能修复,所以刷新后它回到null。 神秘地从键删除auto_increment并将其设置回来,auto_increment值返回。 可能是64位的问题,但是希望有人能够通过将ID键重置为非auto_increment并重新设置来节省数小时的时间来解决这个问题!