web-dev-qa-db-ja.com

すべてのMyISAMデータベースを照会するMySQLコマンド

「MyISAM」エンジンを持っているかどうかすべてのデータベースに問い合わせるMySQLの適切なコマンドを誰かが手伝ってくれるとありがたいです。すべてのDBとテーブルをMyISAMからInnoDBに変換する必要があります。

13
James Wise

以下は、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');

これらのステートメントを実行して、エンジンを変換できます。

25
Abdul Manaf