我正在尝试
ALTER table tbl_name Engine=MyISAM;
我得到了
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
如何在不删除具有外键的表的情况下执行上述查询?
提前谢谢!
UPD 我是否正确理解只有MyIsam
支持全文搜索?
答案 0 :(得分:10)
SET FOREIGN_KEY_CHECKS = 0;
无济于事。
如果有其他InnoDB表包含对要转换为MyISAM的表的外键引用,则必须手动删除外键。另请参阅this post on MySQL site。
答案 1 :(得分:4)
试
SET FOREIGN_KEY_CHECKS = 0;
ALTER table tbl_name Engine=MyISAM;
SET FOREIGN_KEY_CHECKS = 1;
InnoDB存储引擎支持检查外键约束。对于除InnoDB 之外的存储引擎,MySQL Server会在CREATE TABLE语句中解析FOREIGN KEY语法,但不会使用或存储它。