sql >> Database teknologi >  >> RDS >> Mysql

Kan du automatisk oprette en mysqldump-fil, der ikke håndhæver begrænsninger for fremmednøgle?

mysqldump kommando inkluderet i MySQL siden version 4.1.1 producerer som standard et script, der deaktiverer kontrol af fremmednøgle. Følgende linje er inkluderet nær toppen af ​​dumpfilen:

/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/*!40014 ... */ syntaks er en betinget kommentar som vil blive udført på MySQL version 4.0.14 og nyere. Den gamle indstilling for kontrol af fremmednøgle gendannes mod slutningen af ​​dumpfilen:

/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;

Bemærk, at de betingede kommentarer fortolkes af klienten (i stedet for serveren). Hvis du indlæser dumpfilen med en klient, der ikke understøtter dem, vil kontrol af fremmednøgle ikke blive deaktiveret, og du kan støde på fejl. For de bedste resultater vil jeg foreslå at indlæse dumpfiler ved hjælp af den officielle mysql kommandolinjeklient:

mysql -hserver -uuser -p database < dumpfile.sql

Det er også værd at bemærke, at hvis mysqldump køres med --compact mulighed, så udelades kommandoerne til at deaktivere og genaktivere kontrol af fremmednøgle fra dumpfilen.



  1. Gem SQLite-forespørgselsresultater i en tekstfil

  2. Konverter varchar til datetime i SQL Server

  3. Sporing på kolonneniveau og rækkeniveau i fletningsreplikering

  4. INDSÆT IGNORER ved hjælp af Laravel's Fluent