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

Come scaricare selettivamente tutte le tabelle innodb in un database mysql?

Se questa fosse un'operazione una tantum farei:

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

ed esegui un copia/incolla rettangolare dalla colonna Nome:

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

in un editor di testo e convertilo in un comando

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

e quindi importare dopo aver sostituito tutte le istanze di ENGINE=InnoDB con ENGINE=MyISAM in DUMP.sql

Se vuoi evitare la magia rettangolare del copia/incolla puoi fare qualcosa come:

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

che restituirà countries foo3 foo5 lol people