MySQLでは、特定のデータベースにストレージエンジンを指定する方法はなく、単一のテーブルにのみ指定します。ただし、次の1つのセッションで使用するストレージエンジンを指定できます。
SET storage_engine=InnoDB;
したがって、テーブルごとに指定する必要はありません。
実際にすべてのテーブルがInnoDBを使用しているかどうかを確認するにはどうすればよいですか?
回答:
SHOW CREATE TABLEを使用する場合は、クエリからエンジンを解析する必要があります。
開発者はいつでもスキーマを変更する権利を留保しているため、INFORMATION_SCHEMAデータベースから選択することはお勧めできません(可能性は低いですが)。
使用する正しいクエリはSHOWTABLESTATUSです。データベース内のすべてのテーブルに関する情報を取得できます。
SHOW TABLE STATUS FROM `database`;
または特定のテーブルの場合:
SHOW TABLE STATUS FROM `database` LIKE 'tablename';
返される列の1つはエンジンです。
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'
show create table <table>
トリックを行う必要があります。