“ERROR 1031(HY000)在第###行:'<table_name>'的表存储引擎在创建表时没有此选项

时间:2017-08-13 19:59:28

标签: mysql

将通过mysqldump导出的数据导入新的MySQL数据库时,我在create table语句中收到以下错误:

ERROR 1031 (HY000) at line ###: Table storage engine for '<table_name>' doesn't have this option

对“此选项”的引用似乎很模糊。导致错误的原因是什么?

1 个答案:

答案 0 :(得分:0)

在MySQL 5.6及更早版本中创建表时,选项ROW_FORMAT=FIXED将被静默解释为ROW_FORMAT=COMPACT。在启用了innodb_strict_mode的MySQL 5.7.7及更新版本中,行为不同 - FIXED不再是有效值。如果导出使用ROW_FORMAT=FIXED创建的表并将它们导入到MySQL 5.7.7及更高版本中,则会收到有关没有该选项的存储引擎的错误。

谢天谢地,修复很简单。在任何触发错误的SQL语句中将ROW_FORMAT=FIXED更改为ROW_FORMAT=COMPACT。或者,您可以禁用innodb_strict_mode以获取先前的行为。

有关详细信息,请参阅MySQL bug #77625