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

Přeskakujte tabulky v mysqldump na základě vzoru

Bohužel mysqldump vyžaduje, aby názvy tabulek byly plně kvalifikované, takže nemůžete zadat parametr jako vzor regulárního výrazu.

Můžete však použít skript ke generování vašeho mysqldump tak, že se připojí k information_schema a vypíše všechny tabulky pomocí něčeho jako:

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

A pak nechat vygenerovat --ignore-table parametry pro všechny názvy tabulek, které odpovídají regulárnímu výrazu ^test .

Chcete-li vypsat pouze schéma a žádná data, můžete použít --no-data=true jako parametr.

Pokud chcete získat vše pro všechny netestovací tabulky, ale pouze schéma pro jinou tabulku, budete muset použít dva samostatné příkazy mysqldump (jeden pro ignorovanou tabulku pro všechny testovací tabulky plus schéma pouze pro jednu a další pouze pro schéma tabulky pouze schématu), přičemž druhé se připojí k výstupnímu souboru pomocí >> připojit provozovatel .

Takže váš výsledný skript může vygenerovat něco jako:

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. Upozornění:mysql_connect():[2002] Žádný takový soubor nebo adresář (pokouším se připojit přes unix:///tmp/mysql.sock) v

  2. Převod Varchar na číslo pro řazení

  3. Na jakou hodnotu by měla být nastavena vlastnost providerName při ukládání připojovacího řetězce MySQL do App.config?

  4. Zabezpečte své Mongo Clusters pomocí SSL