sql >> データベース >  >> RDS >> Mysql

mysqlデータベース内のすべてのinnodbテーブルを選択的にダンプする方法は?

    これが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
    

    次に、ENGINE=InnoDBのすべてのインスタンスを置き換えてからインポートします ENGINE=MyISAMを使用 DUMP.sqlで

    長方形のコピー/貼り付けの魔法を避けたい場合は、次のようにすることができます:

    use information_schema;
    select group_concat(table_name separator ' ') from tables 
        where table_schema='DB' and engine='innodb';
    

    これはcountries foo3 foo5 lol peopleを返します



    1. Magentoの製品コレクションオブジェクトとカタログ/製品モデルを理解するのに助けが必要

    2. エラーをforallplsqlにキャッチする方法

    3. Sql selectgroupbyおよびstringconcat

    4. 最初に特定のフィールド値で並べ替える