Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak selektywnie zrzucić wszystkie tabele innodb w bazie mysql?

Gdyby to była jednorazowa operacja, zrobiłbym:

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

i wykonaj prostokątne kopiowanie/wklejanie z kolumny Nazwa:

+-----------+--------+---------+------------+-
| 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 edytora tekstu i przekonwertuj go na polecenie

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

a następnie zaimportuj po zastąpieniu wszystkich wystąpień ENGINE=InnoDB z ENGINE=MyISAM w DUMP.sql

Jeśli chcesz uniknąć prostokątnej magii kopiowania/wklejania, możesz zrobić coś takiego:

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

co zwróci countries foo3 foo5 lol people



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie zmiennej PHP przed zapytaniem MYSQL

  2. Połącz się z mysql w kontenerze docker z hosta

  3. zapytanie o ranking użytkownika w tabelach jeden-do-wielu

  4. Problem z wyszukiwaniem pełnotekstowym MySQL 5.6 podczas wyszukiwania słowa the w PHP

  5. Czy Django ORM może wykonać ORDER BY na określonej wartości kolumny?