「MyISAM」エンジンを持っているかどうかすべてのデータベースに問い合わせるMySQLの適切なコマンドを誰かが手伝ってくれるとありがたいです。すべてのDBとテーブルをMyISAMからInnoDBに変換する必要があります。
以下は、MyISAM
Engineを持つすべてのテーブルを検索するクエリです
SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
上記のクエリは、MyISAM
Engineを持つすべてのテーブルをリストします。
既存のMyISAMテーブルをInnoDBに変換する方法について以下は、既存のMyISAM
テーブルをInnoDB
。
SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA,'`.`',TABLE_NAME, '` ENGINE = InnoDB;') FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
これらのステートメントを実行して、エンジンを変換できます。