如何安全地将使用InnoDB引擎的表转换为MyISAM引擎?

6

我的数据库目前使用的是InnoDB引擎。现在我想要添加全文搜索功能,这就是为什么我想要将我的表格转换为MyISAM。但这样做会破坏所有外键。我该如何安全地将我的表格引擎更改为MyISAM?

当我将表格更改为MyISAM引擎后,如何使用SELECT...JOIN语句?

ALTER TABLE jobs ENGINE = MyISAM;
Cannot delete or update a parent row: a foreign key constraint fails
2个回答

6

我建议您将数据库进行转储,将该文件中所有的InnoDB文本更改为MyISAM,然后加载修改后的文件


4
据我所知,MyISAM不支持外键(与InnoDB提供的功能相比,MyISAM的功能较少)。MySQL会提示您在将表引擎更改为MyISAM之前,必须删除所有引用您的jobs表的外键约束。请注意保留HTML标记。

我在转换表格时遇到了相同的错误信息,但是一旦我删除了所有外键约束,转换就完美地工作了。所以这正如Kohanyi所说的!(在删除它们之前,请考虑你正在做什么...在我的情况下,这些约束是无用的,但在某些情况下,它们可能存在有原因(如果某些应用程序出现故障,可以保证数据库的完整性);-) - lucaferrario

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接