大家好我正在寻找一种方法(sql代码),我可以在我的WordpressDB中将所有InnoDB转换为MyISAM。
我现在的代码是:
SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME,' ENGINE=MyISAM;') FROM Information_schema.TABLES WHERE ENGINE = 'InnoDB'
这让我回来了:
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;
现在我想一次执行所有这些行 我想将所有结果保存在一个变量中并执行它们。但是一个sql变量只能保存一行......如何使用普通的sql代码立即执行所有这些行?
提前致谢
P.S。:我可以使用"更新"解决这个问题,因为更新可能会将引擎更新为MyISAM?
答案 0 :(得分:1)
刚刚测试了另一种(简单?)方式,并为我工作。
只需将您的数据库导出为.sql文件,使用gedit或记事本进行编辑;
替换' ENGINE = INNODB'与' ENGINE = MyISAM'并保存编辑的文件
完成的数字或替换应该是您的表格数
将其导入MySQL(phpMyAdmin或命令行)
和Voila!
答案 1 :(得分:0)
为什么呢? MyISAM将在MySQL的下一个版本中消失。 MyISAM效率低,不太稳健等等。
以下是ALTERs
:
在文件或屏幕中生成alter语句。 (你已经做到了。)
将它们(或将它们)复制到mysql命令行工具中。
去喝咖啡。
但请注意错误。
答案 2 :(得分:0)
备份Mysql数据库。 通过终端或在phpmyadmin中针对要转换为MYISAM的数据库运行此sql查询。
let x = () => 3;
let y = (a, b = x()) => a + b;
console.log(y(5)); // 8
console.log(y(5, 1)); // 6
注意:用您的实际数据库名称更改“ db_name”
将alter.sql文件导入INNODB数据库