这个问题可能与这些问题重复:
无论如何,解决方案对我来说不起作用,所以它似乎是同样的错误,但原因不同。
情况:在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不是很熟悉,请告诉我是否忘记在评论中提供任何必要的信息。
非常感谢任何帮助,提前谢谢!
答案 0 :(得分:4)
我正在回答我自己的问题,因为我通过丢弃桌子并重新创建它来解决这个问题。我在其他一些表上遇到了同样的问题,我可以通过从列中删除AUTO_INCREMENT并重新定义它来解决它。