1553: Cannot drop index needed in a foreign key constraint
MySQLWas 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;
Weitere Einträge zu dieser Datenbank
- 1129Host 'host' is blocked because of many connection errors
- 1194Table 'name' is marked as crashed and should be repaired
- 1615Prepared statement needs to be re-prepared
- 3948Loading local data is disabled; this must be enabled on both the client and server sides
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key
- 1055Expression not in GROUP BY (only_full_group_by)
- 1267Illegal mix of collations