sql >> Database >  >> RDS >> Mysql

Hoe selectief alle innodb-tabellen in een mysql-database te dumpen?

Als dit een eenmalige operatie was, zou ik het volgende doen:

use DB;
show table status name where engine='innodb';

en doe een rechthoekig kopiëren/plakken uit de kolom Naam:

+-----------+--------+---------+------------+-
| 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    |
+-----------+--------+---------+------------+-

naar een teksteditor en converteer het naar een commando

mysqldump -u USER DB countries foo3 foo5 lol people > DUMP.sql

en vervolgens importeren na het vervangen van alle instanties van ENGINE=InnoDB met ENGINE=MyISAM in DUMP.sql

Als je rechthoekig kopiëren/plakken wilt vermijden, kun je zoiets doen als:

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

die countries foo3 foo5 lol people . teruggeeft



  1. metasleutel en meta_value-query in wordpress

  2. Mijn Joomla-site crasht met deze fout-SQL-code

  3. MySQL Query om willekeurige combinaties van twee tabellen te ontvangen

  4. PHP Overerving en MySQL