MySQLでは、特定のデータベースにストレージエンジンを指定する方法はなく、単一のテーブルにのみ指定できます。ただし、次を使用して、1つのセッション中に使用するストレージエンジンを指定できます。
SET storage_engine=InnoDB;
したがって、各テーブルに指定する必要はありません。
実際にすべてのテーブルがInnoDBを使用している場合、どのように確認しますか?
SHOW CREATE TABLEを使用する場合、クエリからエンジンを解析する必要があります。
INFORMATION_SCHEMAデータベースからの選択は、開発者がいつでもスキーマを変更する権利を留保しているため、適切ではありません(可能性は低いですが)。
使用する正しいクエリはSHOW TABLE STATUS-データベース内のすべてのテーブルに関する情報を取得できます。
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>
トリックを行う必要があります。