3

130 個の MyISAM テーブルと 20 個の innodb テーブルを含む av2web というデータベースがあります。これらの 20 個の innodb テーブルの mysqldump を取得し、MyISAM テーブルとして別のデータベースにエクスポートしたいと考えています。

これを達成するためのより迅速な方法を教えてください。

ありがとう、ペドロ・アルバレス・エスピノサ。

4

2 に答える 2

3

これが 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=InnoDBwithに置き換えた後、インポートします。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

于 2010-02-18T19:43:40.367 に答える