错误:无法从存储引擎读取自增值
错误:无法从存储引擎读取自增值
这个问题可能与以下问题重复:
无论如何,这些解决方案对我来说都不起作用,所以看起来是同样的错误但不同的原因。
情况:在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不太熟悉,请在评论中告诉我是否忘记提供任何必要的信息。
非常感谢您的帮助,提前致谢!