在开发时有时因需要把myisam数据库要转换成innodb数据库,这样的方法经常碰到,因为innodb支持存储过程等很多myisam不支持的类型,所在这里提供了一个方法,有需要的朋友可以参考一下.
! rm -f /tmp/ivan_alter.sql #预删除临时文件,方式下面的语句无法写入,代码如下:
- SELECTconcat(‘altertable`’,TABLE_SCHEMA,‘`.`’,TABLE_NAME,‘`engine=innodb;’)
- FROMinformation_schema.TABLES
- WHEREENGINE=‘Myisam’AND
- TABLE_SCHEMA<>‘mysql’AND
- TABLE_SCHEMA<>‘information_schema’
- INTOOUTFILE‘/tmp/ivan_alter.sql’;
- --phpfensi.com
- source/tmp/ivan_alter.sql
- !rm-f/tmp/ivan_alter.sql
执行完后删除临时文件.