sql >> Database teknologi >  >> RDS >> Mysql

Hvordan du selektivt dumper alle innodb-tabeller i en mysql-database?

Hvis dette var en engangsoperation, ville jeg gøre:

brug DB;vis tabelstatusnavn hvor engine='innodb'; 

og lav en rektangulær kopi/indsæt fra kolonnen Navn:

+-----------+--------+--------+------------ +-| Navn | Motor | Version | Rækkeformat |+-----------+--------+--------+------------+-| lande | InnoDB | 10 | Kompakt || foo3 | InnoDB | 10 | Kompakt || foo5 | InnoDB | 10 | Kompakt || lol | InnoDB | 10 | Kompakt || mennesker | InnoDB | 10 | Kompakt |+-----------+--------+--------+------------+-

til en teksteditor og konverter den til en kommando

mysqldump -u BRUGER DB-lande foo3 foo5 lol people> DUMP.sql 

og importer derefter efter at have erstattet alle forekomster af ENGINE=InnoDB med ENGINE=MyISAM i DUMP.sql

Hvis du vil undgå den rektangulære copy/paste-magi, kan du gøre noget som:

brug information_schema;select group_concat(table_name separator ' ') fra tabeller, hvor table_schema='DB' og engine='innodb'; 

hvilket vil returnere lande foo3 foo5 lol mennesker



  1. Hvad er den bedste måde at generere rang i MYSQL?

  2. MySQL hvor IKKE I navnearray?

  3. MySQL - Base64 vs BLOB

  4. hvordan slippe af med netværksfejl (TCP_ERROR) i BIRT?