错误:无法从存储引擎读取自动增量值

时间:2014-01-21 11:53:53

标签: mysql

这个问题可能与这些问题重复:

无论如何,解决方案对我来说不起作用,所以它似乎是同样的错误,但原因不同。

情况:在MySQL中,我有一个表,其中包含一个“id” - 列(主键),其中设置了AUTO_INCREMENT属性。每次我尝试在该表中插入一个新行时,我都会收到以下错误:

Failed to read auto-increment value from storage engine. 

在上述问题中,解决方案是使用以下方法重置自动增量值:

ALTER TABLE `table_name`  AUTO_INCREMENT = 1

在我的情况下,只要我不重新启动计算机,这就可以正常工作。当我这样做时,我又得到了错误。

其他信息:

这是我的CREATE TABLE

CREATE TABLE `producer` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `name` varchar(30) NOT NULL,
 `setup_cost` double NOT NULL,
 `delivery_time` int(5) NOT NULL,
 `stock_delivery_time` int(5) NOT NULL,
 `country` varchar(20) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

执行SHOW TABLE STATUS时我发现了一些奇怪的事情:Auto_increment设置为0而Create_time设置为“2014-01-20 17:00:46”虽然我创建了约一个月前的表。

我还使用MySQL命令CHECK TABLE tablename EXTENDED(thx @ToBe,请参阅注释)检查了损坏的数据,但未发现错误。

由于我对MySQL不是很熟悉,请告诉我是否忘记在评论中提供任何必要的信息。

非常感谢任何帮助,提前谢谢!

1 个答案:

答案 0 :(得分:4)

我正在回答我自己的问题,因为我通过丢弃桌子并重新创建它来解决这个问题。我在其他一些表上遇到了同样的问题,我可以通过从列中删除AUTO_INCREMENT并重新定义它来解决它。