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

7 浏览
0 Comments

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

这个问题可能与以下问题重复:

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

情况:在MySQL中,我有一个表格,其中有一个“id”列(主键),它具有AUTO_INCREMENT属性设置。每次我尝试向该表格插入新行时,都会出现以下错误:

无法从存储引擎中读取自增值。

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

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(感谢@ToBe,参见评论)检查了损坏的数据,但没有找到错误。

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

非常感谢您的帮助,提前致谢!

0
0 Comments

这个问题的出现原因是由于存储引擎未能读取自增值所导致的。解决这个问题的方法是通过删除表并重新创建来解决。在其他一些表中也出现了相同的问题,但只需删除列中的AUTO_INCREMENT并重新定义即可解决。

0