sql >> Databáze >  >> RDS >> Mysql

Jak selektivně vypsat všechny tabulky innodb v databázi mysql?

Pokud by to byla jednorázová operace, udělal bych:

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

a proveďte obdélníkové kopírování/vkládání ze sloupce Název:

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

do textového editoru a převést jej na příkaz

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

a poté importujte po nahrazení všech instancí ENGINE=InnoDB s ENGINE=MyISAM v DUMP.sql

Pokud se chcete vyhnout pravoúhlému kouzlu kopírování/vkládání, můžete udělat něco jako:

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

což vrátí countries foo3 foo5 lol people



  1. Jak změnit nastavení konfigurace pro databázovou poštu na serveru SQL Server (T-SQL)

  2. Jak aktualizovat více tabulek jedním dotazem mysql?

  3. MySQL – VYBERTE pouze 2 řádky z každé „skupiny“

  4. SQL Server 2008 oddělovač tisíců pro sloupec