sql >> Databasteknik >  >> RDS >> Mysql

mysqldump med skapa databasrad

Som standard mysqldump skapar alltid CREATE DATABASE IF NOT EXISTS db_name; uttalande i början av dumpfilen.

[REDIGERA ] Några saker om mysqldump fil och dess alternativ:

--all-databases , -A

Dumpa alla tabeller i alla databaser. Detta är samma sak som att använda --databases alternativet och namnge alla databaser på kommandoraden.

--add-drop-database

Lägg till en DROP DATABASE uttalande före varje CREATE DATABASE påstående. Det här alternativet används vanligtvis i kombination med --all-databases eller --databases alternativet eftersom ingen CREATE DATABASE uttalanden skrivs om inte något av dessa alternativ anges.

--databases , -B

Dumpa flera databaser. Normalt mysqldump behandlar förnamnsargumentet på kommandoraden som ett databasnamn och efterföljande namn som tabellnamn. Med det här alternativet behandlar det alla namnargument som databasnamn. CREATE DATABASE och USE satser ingår i utdata före varje ny databas.

--no-create-db , -n

Detta alternativ undertrycker CREATE DATABASE satser som annars ingår i utdata om --databases eller --all-databases alternativet ges.

För en tid sedan var det en liknande fråga som faktiskt frågade om att inte ha ett sådant uttalande i början av filen (för XML-fil). Länken till den frågan finns här .

Så för att svara på din fråga:

  • om du har en databas att dumpa bör du ha --add-drop-database alternativet i din mysqldump uttalande.
  • om du har flera databaser att dumpa, bör du använda alternativet--databases eller --all-databases och CREATE DATABASE syntax kommer att läggas till automatiskt

Mer information finns på MySQL Reference Manual



  1. Hur man använder SQL Server HierarchyID genom enkla exempel

  2. MySQL pivotfråga

  3. Hur man skapar en skrivskyddad användare i PostgreSQL

  4. GROUP eller DISTINCT efter JOIN returnerar dubbletter