„Falsche Fremdschlüsseleinschränkung fehlgeschlagen“ erklärt und behoben
Bei Auftreten der Fehlermeldung „ERROR 1217 (23000) in Zeile 40: Nicht möglich „Eine übergeordnete Zeile löschen oder aktualisieren: Eine Fremdschlüsseleinschränkung schlägt fehl“ Beim Versuch, eine Tabelle zu löschen, ist es wichtig, die zugrunde liegende Ursache zu verstehen. Obwohl alle anderen Tabellen mit Fremdschlüsselverweisen auf die problematische Tabelle gelöscht werden, bleibt der Fehler bestehen.
In diesem Szenario entsteht das Problem dadurch, dass MySQL Query Browser oder phpMyAdmin separate Verbindungen für jede Abfrage verwenden. Um dieses Problem zu beheben, sollten alle Drop-Anweisungen wie folgt in einer einzigen Abfrage zusammengefasst werden:
SET FOREIGN_KEY_CHECKS=0; DROP TABLE my_first_table_to_drop; DROP TABLE my_second_table_to_drop; SET FOREIGN_KEY_CHECKS=1;
Dadurch werden die Fremdschlüsselprüfungen vorübergehend deaktiviert, sodass die Tabellen erfolgreich gelöscht werden können. Die abschließende SET FOREIGN_KEY_CHECKS=1-Anweisung aktiviert die Fremdschlüsselprüfungen erneut und stellt so die Datenintegrität sicher.
Es ist wichtig zu beachten, dass InnoDB keine schemaübergreifenden Fremdschlüssel unterstützt. Daher wird das Problem nicht durch externe Referenzen außerhalb des aktuellen Datenbankschemas verursacht.
Das obige ist der detaillierte Inhalt vonWarum tritt beim Löschen von Tabellen der Fehler „Falsche Fremdschlüsseleinschränkung fehlgeschlagen' auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!