Heim > Datenbank > MySQL-Tutorial > Warum kann ich eine Tabelle mit Fremdschlüsseleinschränkungen nicht mithilfe mehrerer Abfragen löschen?

Warum kann ich eine Tabelle mit Fremdschlüsseleinschränkungen nicht mithilfe mehrerer Abfragen löschen?

Linda Hamilton
Freigeben: 2024-11-04 17:32:02
Original
1025 Leute haben es durchsucht

Why Can't I Drop a Table with Foreign Key Constraints Using Multiple Queries?

Fehler bei gefälschter Fremdschlüsseleinschränkung

Beim Versuch, eine Tabelle mit dem Namen „Area“ aus einer Datenbank zu löschen, wurde eine Fehlermeldung angezeigt, die auf einen Fremdschlüssel hinweist Einschränkungsfehler. Obwohl alle anderen Tabellen gelöscht wurden, die Fremdschlüsselbeziehungen zum Bereich hatten, blieb die Einschränkung weiterhin bestehen.

Mögliche Gründe

InnoDB, die von der Datenbank verwendete Speicher-Engine, Normalerweise ist es nicht möglich, dass Fremdschlüssel auf Tabellen außerhalb des aktuellen Schemas verweisen. Daher war es rätselhaft, warum Fremdschlüsseleinschränkungen immer noch das Löschen der Bereichstabelle verhinderten.

Lösung

Bei weiteren Untersuchungen wurde festgestellt, dass bestimmte Datenbanktools, B. MySQL Query Browser oder phpMyAdmin, öffnen Sie für jede Abfrage eine neue Verbindung. Dieses Verhalten verhindert die Weitergabe von Änderungen über mehrere Abfragen hinweg. Um das Problem zu beheben, müssen alle Drop-Anweisungen innerhalb einer einzigen Abfrage ausgeführt werden:

SET FOREIGN_KEY_CHECKS=0;  -- Disable foreign key checks
DROP TABLE my_first_table_to_drop;
DROP TABLE my_second_table_to_drop;
SET FOREIGN_KEY_CHECKS=1;  -- Re-enable foreign key checks
Nach dem Login kopieren

Das Deaktivieren von Fremdschlüsselprüfungen ermöglicht das Löschen von Tabellen, die an Fremdschlüsselbeziehungen beteiligt sind, ohne den Einschränkungsfehler auszulösen. Die anschließende erneute Aktivierung der Fremdschlüsselprüfungen gewährleistet die Integrität der Datenbank für zukünftige Vorgänge.

Das obige ist der detaillierte Inhalt vonWarum kann ich eine Tabelle mit Fremdschlüsseleinschränkungen nicht mithilfe mehrerer Abfragen löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage