Der mysqldump
Befehl in MySQL enthalten seit Version 4.1.1
erzeugt standardmäßig ein Skript, das die Fremdschlüsselprüfungen ausschaltet. Die folgende Zeile ist am Anfang der Dump-Datei enthalten:
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
Der /*!40014 ... */
Syntax ist ein bedingter Kommentar
die auf MySQL-Version 4.0.14 und höher ausgeführt wird. Die alte Einstellung für Fremdschlüsselprüfungen wird gegen Ende der Dump-Datei wiederhergestellt:
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
Beachten Sie, dass die bedingten Kommentare vom Client interpretiert werden (anstelle des Servers). Wenn Sie die Dump-Datei mit einem Client laden, der sie nicht unterstützt, werden die Fremdschlüsselprüfungen nicht deaktiviert und es können Fehler auftreten. Für beste Ergebnisse empfehle ich, Dump-Dateien mit dem offiziellen mysql-Befehlszeilen-Client zu laden:
mysql -hserver -uuser -p database < dumpfile.sql
Es ist auch erwähnenswert, dass wenn mysqldump
wird mit dem --compact
ausgeführt
Option, dann werden die Befehle zum Deaktivieren und erneuten Aktivieren der Fremdschlüsselprüfungen in der Dump-Datei weggelassen.