【问题标题】:Error: Failed to read auto-increment value from storage engine错误:无法从存储引擎读取自增值
【发布时间】:2014-02-11 00:04:01
【问题描述】:

此问题可能与以下问题重复:

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

情况:在 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(感谢@ToBe,参见 cmets)检查了损坏的数据,但没有发现错误。

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

非常感谢任何帮助,在此先感谢!

【问题讨论】:

  • 您检查过损坏的表吗?在你的 mysql 文件夹中应该有一些工具。
  • @ToBe 感谢您的提示,我使用 MySQL 命令CHECK TABLE tablename EXTENDED 检查了表,但没有发现错误。

标签: mysql


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-07-15
    • 2011-11-12
    • 2015-01-27
    • 2016-07-01
    • 2013-07-07
    • 2013-12-06
    • 1970-01-01
    • 2023-03-03
    • 2020-07-06
    相关资源
    最近更新 更多