本文共 2355 字,大约阅读时间需要 7 分钟。
网上有这样一个方法:
1.查看当前数据引擎的命令:
show engines;
2.
USE `[DBNAME]`;
SELECT GROUP_CONCAT(CONCAT( 'ALTER TABLE ' ,TABLE_NAME ,' ENGINE=InnoDB; ') SEPARATOR '' )
FROM information_schema.TABLES AS t
WHERE TABLE_SCHEMA = '[DBNAME]' AND TABLE_TYPE = 'BASE TABLE';
将其中的红色部分替换为你所使用的
执行后其实生成的是查询命令,然后copy生产的命令,执行SQL 即可:
ALTER TABLE info_aaaa ENGINE=InnoDB; ALTER TABLE info_data_bbb ENGINE=InnoDB; ALTER TABLE info_data_ccc ENGINE=InnoDB; ALTER TABLE info_data_ddd ENGINE=InnoDB; ALTER TABLE info_data_eee ENGINE=InnoDB; ALTER TABLE info_data_fffENGINE=InnoDB;
再次查看数据表的数据引擎已经更改了:show table status from [DBNAME];
但是,生成的命令,只有一小部分,可能表太多了吧。
那就用下面这一句,在查询里,贴如下命令,将生成
SELECT concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;') FROM Information_schema.TABLES WHERE TABLE_SCHEMA = 'jingzong' AND ENGINE = 'MYISAM' AND TABLE_TYPE = 'BASE TABLE'
生成的语句是:
CREATE TABLE MY_TABLE (
`concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;')` VARCHAR ); INSERT INTO MY_TABLE(`concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;')`) VALUES ('ALTER TABLE jz_admin ENGINE=InnoDB;'); INSERT INTO MY_TABLE(`concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;')`) VALUES ('ALTER TABLE jz_admin_panel ENGINE=InnoDB;'); INSERT INTO MY_TABLE(`concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;')`) VALUES ('ALTER TABLE jz_admin_role ENGINE=InnoDB;'); INSERT INTO MY_TABLE(`concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;')`) VALUES ('ALTER TABLE jz_admin_role_priv ENGINE=InnoDB;'); INSERT INTO MY_TABLE(`concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;')`) VALUES ('ALTER TABLE jz_announce ENGINE=InnoDB;'); INSERT INTO MY_TABLE(`concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;')`) VALUES ('ALTER TABLE jz_attachment ENGINE=InnoDB;'); INSERT INTO MY_TABLE(`concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;')`) VALUES ('ALTER TABLE jz_attachment_index ENGINE=InnoDB;'); INSERT INTO MY_TABLE(`concat('ALTER TABLE ', TABLE_NAME,' ENGINE=InnoDB;')`) VALUES ('ALTER TABLE jz_badword ENGINE=InnoDB;');全部语句是有了,但这一段,不好使用,
手动建一个文件,把没有用的去掉,批量查询...替换为'',
留下:ALTER TABLE jz_admin ENGINE=InnoDB;
这样的。
然后再贴到查询里,执行一遍就可以了。
---------- 招募未来大神 -----------------------
如果您有利他之心,乐于帮助他人,乐于分享如果您遇到php问题,百度且问了其他群之后仍没得到解答
欢迎加入,PHP技术问答群,QQ群:292626152
教学相长!帮助他人,自己也会得到提升!
为了珍惜每个人的宝贵时间,请大家不要闲聊!
愿我们互相帮助,共同进步!
加入时留言暗号,php,ajax,thinkphp,yii...
本文转自phpervip 51CTO博客,原文链接:http://blog.51cto.com/phpervip/1954734,如需转载请自行联系原作者