这个错误是什么意思?
MYSQL - Error: 1031 SQLSTATE: HY000 (ER_ILLEGAL_HA)
我可以在MySQL站点上找到这个错误的百万个引用 - 但是找不到它的定义.
我一直在从生产区域导出数据库 - 并导入到开发测试区域,现在已经超过一年了.并且每次都在导出/导入时使用相同的选择.今天,它在导入期间在INSERT DELAYED INTO命令上报告此错误.
我选择了一个事务,添加DROP TABLE,添加IF NOT EXISTS,添加AUTO_INCREMENT值,完成插入,扩展插入,在我的导出中使用延迟插入.因为我想确保我放在开发数据库中的副本被覆盖并创建开发数据库的精确副本.
我很想知道为什么在一年后它现在报告这个错误 - 并且是一个查看这些错误含义的好地方.
谢谢.
问候.
没有表引擎支持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的引擎,会发生错误."
这些表都不支持事务,因此这里的功能没有冲突.
我想你会发现延迟插入和交易的支持是互斥的.