Foreign Keys beim Backup von MySQL-Datenbanken (InnoDB)

Wer ab und an Backups seiner MySQL Datenbank durchführen möchte, kann dies z.B. auf der Konsolenebene mit mysqldump durchführen. Ich stand neulich vor dem Problem ein Backup File – generiert aus phpMyAdmin – in eine lokale Entwicklungsumgebung einspielen zu müssen. Da ich hierbei grandios an den Foreign Keys gescheitert bin (foreign key constraints), hier die Lösung für alle Verzweifelten, die das auch versuchen möchten:

Bei InnoDB werden die Foreign Keys bei den Datenbankoperationen (UPDATE, INSERT, DELETE) geprüft. Deshalb scheitert meistens ein reiner Datenimport in eine leere Datenbank. Also was tun? Wir schalten hierzu diese Prüfung temporär aus und nach dem Import wieder an, logisch, oder? :) Und diese Magie geht wie folgt:

Am Anfang des Import fügen wir noch folgende Zeilen hinzu:

Und am Ende des Imports aktiviert man wieder die Prüfung und commitet das Geschriebene:

Unfassbar einfach! Aber halt, auf der Konsole? Ja, geht auch:

Tagged: , , ,

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*