如何将所有 InnoDB 表转换为 MyISAM?

Mar*_*tin 2 mysql sql myisam innodb

大家好,我正在寻找一种方法(sql 代码),我可以使用它在 WordpressDB 中将所有 InnoDB 转换为 MyISAM 。

从现在开始我的代码是:

SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME,' ENGINE=MyISAM;') FROM Information_schema.TABLES WHERE ENGINE = 'InnoDB'
Run Code Online (Sandbox Code Playgroud)

这让我回来:

ALTER TABLE db.wp_comments ENGINE=MyISAM;
ALTER TABLE db.wp_links ENGINE=MyISAM;
ALTER TABLE db.wp_options ENGINE=MyISAM;
ALTER TABLE db.wp_postmeta ENGINE=MyISAM;
ALTER TABLE db.wp_posts ENGINE=MyISAM;
ALTER TABLE db.wp_term_relationships ENGINE=MyISAM;
ALTER TABLE db.wp_term_taxonomy ENGINE=MyISAM;
ALTER TABLE db.wp_termmeta ENGINE=MyISAM;
ALTER TABLE db.wp_terms ENGINE=MyISAM;
ALTER TABLE db.wp_usermeta ENGINE=MyISAM;
ALTER TABLE db.wp_users ENGINE=MyISAM;
Run Code Online (Sandbox Code Playgroud)

现在我想一次执行所有这些行,我想将所有结果保存在一个变量中并执行它们。但是一个 sql 变量只能保存一行......我现在如何使用简单的 sql 代码一次执行所有这些行?

提前致谢

PS:我可以使用“更新”来解决这个问题,因为更新可能会将引擎更新为MyISAM?

小智 5

刚刚测试了另一种(简单的?)方式,并为我工作。

只需将您的数据库导出为 .sql 文件,使用 gedit 或记事本进行编辑;

将 'ENGINE=INNODB' 替换为 'ENGINE=MyISAM' 并保存编辑的文件

数量或替换完成应该是你的桌子的数量

将其导入 MySQL(phpMyAdmin 或命令行)

瞧!