sql >> Database >  >> RDS >> Mysql

Sla tabellen over in mysqldump op basis van een patroon

Helaas mysqldump vereist dat tabelnamen volledig gekwalificeerd zijn, zodat u een parameter niet als een regex-patroon kunt specificeren.

Je zou echter een script kunnen gebruiken om je mysqldump te genereren door het te laten verbinden met het information_schema en alle tabellen op te sommen met zoiets als:

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

En dan het genereren van --ignore-table parameters voor alle tabelnamen die overeenkomen met de regex van ^test .

Om alleen het schema en geen gegevens te dumpen, kunt u gebruiken --no-data=true als een parameter.

Als je alles wilt krijgen voor alle niet-testtabellen, maar alleen het schema voor een andere tabel, dan moet je twee afzonderlijke mysqldump-opdrachten gebruiken (een voor de negeer-tabel voor alle testtabellen plus het schema alleen en een voor alleen het schema van de tabel met alleen schema) waarbij de tweede wordt toegevoegd aan het uitvoerbestand met behulp van de >> toevoegen operator .

Uw resulterende script kan dus iets genereren als:

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. ImportError:Geen module met de naam mysql.connector met Python2

  2. Wat is de beste manier om html-code op te slaan in mysql?

  3. Hoe verplaats ik een tabel naar een schema in T-SQL

  4. sqlalchemy.orm.exc.FlushError:instantie heeft een NULL-identiteitssleutel