DBAtlas · Atlas für Datenbankbetrieb

1553: Cannot drop index needed in a foreign key constraint

MySQL

Was bedeutet das?

Du willst einen Index löschen, der von einem Foreign-Key-Constraint benötigt wird. InnoDB erlaubt nicht, den Index zu entfernen, auf den sich ein FK stützt.

Ursache

In InnoDB benötigt jeder Foreign Key einen Index auf seiner bzw. seinen referenzierenden Spalte(n). Das Löschen dieses Index mit DROP INDEX wird abgelehnt, weil der FK-Constraint sonst ohne Grundlage wäre. Tritt meist bei der Reorganisation einer Tabelle auf (Index-Bereinigung).

Lösung

Lösche zuerst den Foreign-Key-Constraint und dann den Index: ALTER TABLE my_table DROP FOREIGN KEY fk_name; dann DROP INDEX idx_name ON my_table; Lege den FK bei Bedarf neu an, sodass er sich auf einen anderen geeigneten Index stützt. Vorhandene FKs auflisten: SELECT constraint_name, table_name FROM information_schema.key_column_usage WHERE referenced_table_name IS NOT NULL;

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank