Table storage engine for <TABLE> doesn't have this option.
这是 MySQL 在 order by
查询中返回的错误。列类型为 varchar(2000)
。
查询:
select * from `dbo.table_1` order by textT;
返回错误:
ERROR 1031 (HY000): Table storage engine for 'dbo.table_1' doesn't have this option.
为什么会这样?我该如何解决?
最佳答案
当您导入使用 MyISAM 创建但后来切换到 InnoDB 的表定义时,似乎会出现此问题;结果 ROW_FORMAT
选项似乎无效。
如果您尝试导入导出的数据库并遇到此问题,您可以简单地搜索并将 ROW_FORMAT=FIXED
替换为空。
我使用以下方法非常快速地做到了这一点:
sed -ie 's/ROW_FORMAT=FIXED//g' backup.sql
问题解决了!感谢 jbrahy 指出问题出在 ROW_FORMAT。
编辑:根据@seven 的建议更新以适用于更多平台
EDIT2:另请注意,根据@Steen-Schütt,这可能是更安全的修复
sed -ie 's/ROW_FORMAT=FIXED/ROW_FORMAT=COMPACT/g' backup.sql
关于mysql - <TABLE> 的表存储引擎在按查询排序时没有此选项(错误 1031),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29486583/