sql >> Databasteknik >  >> RDS >> Mysql

Hoppa över tabeller i mysqldump baserat på ett mönster

Tyvärr mysqldump kräver att tabellnamn är helt kvalificerade så att du inte kan ange en parameter som ett regexmönster.

Du kan dock använda ett skript för att generera din mysqldump genom att låta den ansluta till informationsschemat och lista alla tabeller med något som:

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

Och sedan få det att generera --ignore-table parametrar för alla tabellnamn som matchar regexet för ^test .

För att bara dumpa schemat och inga data kan du använda --no-data=true som en parameter.

Om du vill få allt för alla icke-testtabeller men bara schemat för en annan tabell måste du använda två separata mysqldump-kommandon (en för ignore-tabellen för alla testtabeller plus schemat endast en och en annan för endast schemat för endast schematabellen) med det andra som läggs till utdatafilen genom att använda >> lägg till operatör .

Så ditt resulterande skript kan generera något som:

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. Vilka privilegier krävs i MySQL för att exekvera en trigger?

  2. Implementera kommentarer och likes i databasen

  3. Skapa en MySQL-databas

  4. Optimera mysql-frågan för att använda index på en Bitwise where-klausul