mysqldump
kommandot ingår i MySQL sedan version 4.1.1
som standard producerar ett skript som stänger av kontrollen av främmande nyckel. Följande rad finns nära toppen av dumpfilen:
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40014 ... */
syntax är en villkorlig kommentar
som kommer att köras på MySQL version 4.0.14 och senare. Den gamla inställningen för kontroll av främmande nyckel återställs mot slutet av dumpfilen:
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
Observera att de villkorliga kommentarerna tolkas av klienten (istället för servern). Om du laddar dumpfilen med en klient som inte stöder dem, kommer kontroller av främmande nyckel inte att inaktiveras och du kan stöta på fel. För bästa resultat föreslår jag att du laddar dumpfiler med hjälp av den officiella mysql kommandoradsklienten:
mysql -hserver -uuser -p database < dumpfile.sql
Det är också värt att notera att om mysqldump
körs med --compact
alternativet, då utelämnas kommandona för att inaktivera och återaktivera kontroller av främmande nyckel från dumpfilen.