MySQL: Fehler bei der Behandlung falscher Fremdschlüsseleinschränkungen
Es tritt der Fehler „ERROR 1217 (23000)... Fremdschlüsseleinschränkung schlägt fehl“ auf Der Versuch, eine MySQL-Tabelle zu löschen, obwohl scheinbar alle entsprechenden Fremdschlüsseleinschränkungen entfernt wurden, kann sein rätselhaft.
Um dieses Problem zu beheben, ziehen Sie die folgende Möglichkeit in Betracht:
Datenpersistenz aufgrund mehrerer Verbindungen
Bei Verwendung von Datenbankverwaltungstools wie MySQL Query Browser oder phpMyAdmin wird beobachtet, dass bei jeder Abfrage eine neue Verbindung aufgebaut wird. Dies bedeutet, dass die Datenbank möglicherweise immer noch Fremdschlüsselverweise enthält, die verwaist sind und in der aktuellen Verbindung nicht berücksichtigt werden, wenn Tabellen einzeln gelöscht werden.
Lösung: Konsolidierte Drop-Anweisungen
Um dieses Problem zu beheben, konsolidieren Sie alle Drop-Anweisungen in einer einzigen Abfrage. Zum Beispiel:
SET FOREIGN_KEY_CHECKS=0; DROP TABLE my_first_table_to_drop; DROP TABLE my_second_table_to_drop; SET FOREIGN_KEY_CHECKS=1;
Durch die Gruppierung aller Drop-Anweisungen werden Fremdschlüsseleinschränkungen deaktiviert, während die Tabellen gelöscht werden. Die zusätzliche Anweisung SET FOREIGN_KEY_CHECKS=1 dient als zusätzliche Vorsichtsmaßnahme, um Fremdschlüsselprüfungen nach Abschluss des Vorgangs wieder zu aktivieren.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Löschen von Tabellen in MySQL die Meldung „FEHLER 1217 (23000)... Fremdschlüsseleinschränkung schlägt fehl'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!