DBAtlas · Atlas für Datenbankbetrieb

3730: Cannot drop table referenced by a foreign key constraint (von Foreign Key referenzierte Tabelle kann nicht gelöscht werden)

MySQL

Was bedeutet das?

Die Tabelle kann nicht gelöscht werden, weil der Foreign Key einer anderen Tabelle auf sie verweist. Solange die Referenz besteht, ist DROP blockiert.

Ursache

Versuch, eine Elterntabelle zu löschen, während per FK verknüpfte Kindtabellen noch existieren; die Abhängigkeitsreihenfolge wird nicht eingehalten; die Foreign Keys werden nicht zuerst entfernt.

Lösung

Entferne zuerst den verweisenden Foreign Key: ALTER TABLE child_table DROP FOREIGN KEY fk_name; dann lösche die Tabelle. Abhängige Tabellen/Constraints finden: SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'my_table'; Bei Massenoperationen kann vorübergehend SET FOREIGN_KEY_CHECKS = 0; verwendet werden, aber sei vorsichtig und setze es danach wieder auf 1.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank