sql >> Databasteknik >  >> RDS >> Mysql

Slå samman flera .sql-tabelldumpfiler till en enda fil

Det finns inga speciella verktyg för att göra detta. Du kan helt enkelt sammanfoga filerna:

$ cat b1.sql b2.sql b3.sql > b_all.sql

Förutom att det typiska innehållet i dessa .sql-filer är en DROP TABLE, sedan en CREATE TABLE, sedan en massa INSERT-satser. Om var och en av de individuella dumpfilerna är formaterade på det sättet, och om du återställer dem i sekvens, kommer var och en att TAPPTA TABELL och radera data som importerats av föregående fil.

Du kan skapa en dumpfil utan DROP/CREATE-satserna:

$ mysqldump --no-create-info <database> <table> ...

Men om du redan har dumpfilerna (kan inte dumpa dem igen) och du vill bli av med DROP/CREATE-satserna i alla utom den första filen:

$ ( cat b1.sql ; cat b2.sql b3.sql | sed -e '/^DROP TABLE/,/^-- Dumping data/d' ) > b_all.sql



  1. Oracle ISNULL() Motsvarighet

  2. Aggregera funktion i en SQL-uppdateringsfråga?

  3. i Php hur tar man bort emoji-kod?

  4. konstigt - mysqls sql::SQLException fångas inte av sin typ, utan fångas som std::exception och skickas tillbaka framgångsrikt