27818


**1データベースの中に、MyISAMテーブルとInnoDBテーブルが混在しています**  
・全てInnoDBへ変更したいです  
・テーブルを指定すれば変更できるのですが、数が多いため面倒です

**質門**  
・指定データベースの全テーブルを(1つ1つテーブル名指定せず)InnoDBテーブルへ変更するためにはどうすれば良いでしょうか？  
・下記みたいな感じで実行したいのですが…

[code]

    ALTER TABLE データベース名.* ENGINE=InnoDB;
    
[/code]


CC BY-SA 3.0
2016-07-21T13:46:57.173
27798
2016-07-23T04:20:35.737
7886
question
mysql
個別にテーブル名を指定せず、MyISAMからInnoDBへ変更するためには？


手順１：クエリ作成  
下記のクエリを実行すると`ENGINE`が`MyISAM`のテーブルのみ抽出し、  
そのテーブルを`InnoDB`に変更するクエリが出力されます。

[code]

    SELECT CONCAT('ALTER TABLE ',table_name, ' ENGINE=InnoDB;')
    FROM information_schema.tables
    WHERE engine='MyISAM' AND table_schema='database_name';
    
[/code]

手順２：「手順１」で出力されたクエリを全て実行します。

* * *

クエリ1つで全てのテーブルを一括で変えたい、と言うことであれば出来ないかと思います。


CC BY-SA 3.0
2016-07-23T04:20:35.737
27818
2016-07-23T04:20:35.737
27798
answer