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

Pomiń tabele w mysqldump na podstawie wzorca

Niestety mysqldump wymaga, aby nazwy tabel były w pełni kwalifikowane, więc nie można określić parametru jako wzorca wyrażenia regularnego.

Możesz jednak użyć skryptu do wygenerowania mysqldump, łącząc go z informacją_schema i wyświetlając wszystkie tabele, używając czegoś takiego:

SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');

A następnie wygenerowanie --ignore-table parametry dla wszystkich nazw tabel, które pasują do wyrażenia regularnego ^test .

Aby zrzucić tylko schemat i żadnych danych, możesz użyć --no-data=true jako parametr.

Jeśli chcesz uzyskaćwszystko dla wszystkich tabel nietestowych, ale tylko schemat dla innej tabeli, musisz użyćdwóch oddzielnych poleceń mysqldump (jednej dla tabeli ignorowania dla wszystkich tabel testowych oraz schematu tylko dla jednej i drugiej tylko dla schemat tabeli tylko schemat) z drugą dołączaną do pliku wyjściowego za pomocą >> dołącz operator .

Skrypt wynikowy może więc wygenerować coś takiego:

mysqldump -u root -ptoor databaseName --ignore-table=testTable1 --ignore-table=testTable2 --ignore-table=testTable3  --ignore-table=schemaOnlyTable > mysqldump.sql

mysqldump -u root -ptoor databaseName schemaOnlyTable --no-data=true >> mysqldump.sql



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQLdb Pythona nie może znaleźć libmysqlclient.dylib z Homebrewed MySQL

  2. Wstrzyknięcie SQL, które omija mysql_real_escape_string()

  3. MySQL:ponowne użycie autoinkrementacji podczas wstawiania

  4. Android:Używanie SSL/HTTPS do łączenia się z PHP do bazy danych i używania POST/GET

  5. W jaki sposób Zend\Db w ZF2 kontroluje transakcje?