这个错误是什么意思?
MYSQL - Error: 1031 SQLSTATE: HY000 (ER_ILLEGAL_HA)
我可以在MySQL网站上找到这个错误的百万个引用 - 但找不到它的定义。
我一直在从生产区域导出数据库 - 并导入到开发测试区域,现在已经超过一年了。并且每次都在导出/导入时使用相同的选择。今天,它在导入过程中在 INSERT DELAYED INTO 命令中报告此错误。
我在我的导出中选择了一个事务,添加DROP TABLE,添加IF NOT EXISTS,添加AUTO_INCREMENT值,完成插入,扩展插入,使用延迟插入。因为我想确保我放在开发数据库中的副本被覆盖并创建开发数据库的精确副本。
我很想知道为什么一年之后它会报告这个错误 - 并且是一个查看这些错误含义的好地方。
谢谢。
问候。
答案 0 :(得分:5)
没有支持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
是否有人修改了您的数据库并为表分配了不同的存储引擎?
INSERT DELAYED和导致ER_ILLEGAL_HA
的交易另外还要看看以下非常有趣的问题:
引用该答案:
" INSERT DELAYED仅适用于MyISAM,MEMORY,ARCHIVE和(截至 MySQL 5.1.19)BLACKHOLE表。对于不支持的引擎 DELAYED,发生错误。"
这些表都不支持交易,因此没有冲突 功能在这里。
我想你会发现延迟插入和支持 交易将是互相排斥的。
答案 1 :(得分:-1)
来自mysql Server Error Codes and Messages documentation:
错误:1031 SQLSTATE:HY000(ER_ILLEGAL_HA)
消息:'%s'的表存储引擎没有此选项