Tabelle aus Datenbank lässt sich trotz Abfrage nicht löschen?
Hallo,
ich kann eine Tabelle aus einer Datenbank nicht entfernen, weil ich diese Fehlermeldung kriege:
#1451 - Löschen oder Aktualisieren eines Eltern-Datensatzes schlug aufgrund einer Fremdschlüssel-Beschränkung fehl
Ich habe mich mal im Internet darüber informiert und nur gefunden, dass man das auch mit einer Abfrage entfernen kann.
Ich glaube das ist die hier:
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE table_with_foreign_key;
SET FOREIGN_KEY_CHECKS=1;
Danach kriege ich aber wieder die gleiche Fehlermeldung. Weiß jemand, was ich jetzt machen kann?
2 Antworten
Du solltest mal prüfen, welche Spalte in deiner Tabelle denn nun genau einen Fremdschlüssel für eine andere Tabelle darstellt, um das Problem möglicherweise gut lösen zu können. Du musst einfach im Auge behalten, dass du da wohl eine andere Tabelle auf die Daten deiner Tabelle angewiesen ist.
Korrektur des letzten Satzes:
Du musst einfach im Auge behalten, dass da wohl eine andere Tabelle auf die Daten deiner Tabelle angewiesen ist.
Du musst den Satz finden, der dem Löschen im Wege steht. Formuliere dazu eine passende Abfrage.
Der Fremdschlüssel hat ja die Aufgabe, das Löschen von noch benötigten Sätzen zu verhindern. Das ist beabsichtigt, das ist beim Einrichten der Datenbank so festgelegt worden und genau das macht die Datenbank jetzt.
Die Frage ist: Wieso willst Du diesen Satz löschen? Hast Du die Datenbank falsch konzipiert? Ohne diesen Satz wäre die Datenbank nicht mehr konsistent (das heißt widerspruchsfrei).