Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich beim Löschen von Tabellen in MySQL die Meldung „FEHLER 1217 (23000)... Fremdschlüsseleinschränkung schlägt fehl'?

Warum erhalte ich beim Löschen von Tabellen in MySQL die Meldung „FEHLER 1217 (23000)... Fremdschlüsseleinschränkung schlägt fehl'?

Barbara Streisand
Barbara StreisandOriginal
2024-11-05 08:35:02425Durchsuche

Why Do I Get

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn