„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=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.



Hinterlasse einen Kommentar