130 個の MyISAM テーブルと 20 個の innodb テーブルを含む av2web というデータベースがあります。これらの 20 個の innodb テーブルの mysqldump を取得し、MyISAM テーブルとして別のデータベースにエクスポートしたいと考えています。
これを達成するためのより迅速な方法を教えてください。
ありがとう、ペドロ・アルバレス・エスピノサ。
これが 1 回限りの操作である場合、次のようにします。
use DB;
show table status name where engine='innodb';
[名前] 列から長方形のコピー/貼り付けを行います。
+-----------+--------+---------+------------+-
| Name | Engine | Version | Row_format |
+-----------+--------+---------+------------+-
| countries | InnoDB | 10 | Compact |
| foo3 | InnoDB | 10 | Compact |
| foo5 | InnoDB | 10 | Compact |
| lol | InnoDB | 10 | Compact |
| people | InnoDB | 10 | Compact |
+-----------+--------+---------+------------+-
テキストエディタに変換してコマンドに変換
mysqldump -u USER DB countries foo3 foo5 lol people > DUMP.sql
DUMP.sqlのすべてのインスタンスをENGINE=InnoDB
withに置き換えた後、インポートします。ENGINE=MyISAM
長方形のコピー/貼り付けの魔法を避けたい場合は、次のようにすることができます。
use information_schema;
select group_concat(table_name separator ' ') from tables
where table_schema='DB' and engine='innodb';
戻りますcountries foo3 foo5 lol people