1

这个错误是什么意思?

MYSQL - Error: 1031 SQLSTATE: HY000 (ER_ILLEGAL_HA)

我可以在 MySQL 站点上找到一百万个对这个错误的引用——但找不到它的定义。

  • 有人知道定义吗?意义?
  • 还是参考这些错误的好地方?

一年多以来,我一直在从生产区域导出数据库 - 并导入到开发测试区域。并且每次都在导出/导入时使用相同的选择。今天,它在导入期间通过INSERT DELAYED INTO命令报告此错误。

我选择了一个事务,添加 DROP TABLE,添加 IF NOT EXISTS,添加 AUTO_INCREMENT 值,完成插入,扩展插入,在我的导出中使用延迟插入。因为我想确保我放置在开发数据库中的副本被覆盖并创建开发数据库的精确副本。

我很想知道为什么一年后它现在报告此错误 - 以及查看这些错误含义的好地方。

谢谢你。

问候。

4

2 回答 2

4

没有同时支持 Transactions 和 InsertDelayed 的表引擎。尝试同时使用两者将导致 ER_ILLEGAL_HA 错误。

ER_ILLEGAL_HA 是什么意思

基本上,只要您尝试使用表 SQL 引擎不支持的功能,就会出现此错误。

请参阅:http ://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html#error_er_illegal_ha

是否有人修改了您的数据库并为表分配了不同的存储引擎?

插入延迟和导致 ER_ILLEGAL_HA 的事务

另外看看以下非常有趣的问题:

引用该答案:

“INSERT DELAYED 仅适用于 MyISAM、MEMORY、ARCHIVE 和(自 MySQL 5.1.19 起)BLACKHOLE 表。对于不支持 DELAYED 的引擎,会发生错误。”

这些表都不支持事务,因此这里没有功能冲突。

我想您会发现对延迟插入和事务的支持将是相互排斥的。

于 2013-06-20T01:54:26.260 回答
0

从 mysql服务器错误代码和消息文档

错误:1031 SQLSTATE: HY000 (ER_ILLEGAL_HA)
消息:'%s'的表存储引擎没有这个选项。

于 2013-06-20T01:58:04.320 回答