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.