„Cannot truncate a table referenced in a foreign key constraint“

In der Entwicklungsphase kann es recht nervig sein wenn man immer wieder mal schnell eine Tabelle komplett leeren möchte. Aus welchem Grund auch immer man dies möchte, so steht dies oft in Konflikt mit den foreign keys anderer Tabellen.

Ein einfaches truncate Table reicht nicht wenn man mit foreign keys arbeitet.

Lösung

Um die Tabelle dennoch zu leeren, muss zuerst die Fremdschlüsselprüfung abgeschaltet werden.

SET FOREIGN_KEY_CHECKS=0;
   TRUNCATE table1;
SET FOREIGN_KEY_CHECKS=1;

SET FOREIGN_KEY_CHECKS=1; wäre wahrscheinlich gar nicht nötig, da das aussetzen der Checks sich nur auf die aktuelle Session bezieht. Sobald die Session geschlossen und neu geöffnet wird sind die CHECKS automatisch wieder aktiviert.



Beitrag veröffentlicht

in

von

Schlagwörter:

Kommentare

Schreibe einen Kommentar

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