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


13

「MyISAM」エンジンを持つためにすべてのデータベースを照会するためのMySQLの適切なコマンドについて誰かが私を助けることができれば幸いです。すべてのDBとテーブルをMyISAMからInnoDBに変換する必要があります。

回答:


25

以下は、MyISAMエンジンを持つすべてのテーブルを検索するクエリです

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エンジンを持つすべてのテーブルをリストします。

既存のMyISAMテーブルをInnoDBに変換する方法について 既存のMyISAMテーブルをに変換するためにALTERステートメントを返すクエリは次のとおりです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');

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


@AbdulManafに感謝します。サーバーで最初のコマンドに時間がかかるとは思っていませんでした。
ジェームズワイズ

はい、時間がかかりません。
アブドゥルマナフ

InnoDBではないデータベース内のすべてのテーブルを見つけるためにクエリする方法は?
ジェームズワイズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.