我想将带有innodb表的数据库转换为myisam,所有这些都是。我怎么能这样做?表中存在一些外键。
我怎样才能以最好的方式做到这一点?
答案 0 :(得分:1)
当外键仍然存在时,您无法直接从InnoDB转换为MyISAM。您必须先删除约束。为此,请为每个表执行以下步骤:
SHOW CREATE TABLE tablename
ALTER TABLE tablename DROP FOREIGN KEY x
,其中x
是CONSTRAINT
和FOREIGN KEY
之间显示的标识符。 SHOW CREATE TABLE tablename
。外键约束可能留下了索引(因为InnoDB需要在每个外键上有一个索引,并且它不一定会因为删除了约束而删除它们)。对于您决定不再需要的每个索引,请发出ALTER TABLE tablename DROP INDEX indexname
。对所有涉及约束的表执行此操作后,可以使用ALTER TABLE tablename ENGINE=MYISAM
将表转换为MyISAM。