【MySQL】データベース内の全テーブルのエンジンMyISAMからInnoDBに変更する


一度構築してしまったMyISAMの各テーブルを一括でInnoDBに変更したい場合、

逐一ALTER TABLEを実行するのは面倒なので一括で処理したい場合に下記SQLを実行すると幸せになれる

下記もMyISAMのテーブルのみを対象にしているので、他のエンジンも併用している場合は注意が必要

SET @DATABASE_NAME = '変更したいデータベース名';

SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM    information_schema.tables AS tb
WHERE   table_schema = @DATABASE_NAME
AND     `ENGINE` = 'MyISAM'
AND     `TABLE_TYPE` = 'BASE TABLE'
ORDER BY table_name DESC;

参考

http://stackoverflow.com/questions/3856435/how-to-convert-all-tables-from-myisam-into-innodb


この投稿へのコメント

コメントはありません。

コメントを残す

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL