1553: Cannot drop index needed in a foreign key constraint (no se puede eliminar un índice que necesita una restricción de foreign key)
MySQL¿Qué significa?
Intenta eliminar un índice que necesita una restricción de foreign key. InnoDB no permite quitar el índice en el que se apoya una FK.
¿Por qué ocurre?
En InnoDB, toda foreign key requiere un índice en su(s) columna(s) de referencia. Eliminar ese índice con DROP INDEX se rechaza porque dejaría la restricción FK sin soporte. Suele surgir al reorganizar una tabla (limpieza de índices).
Cómo solucionarlo
Elimine primero la restricción de foreign key y después el índice: ALTER TABLE my_table DROP FOREIGN KEY fk_name; luego DROP INDEX idx_name ON my_table; Si es necesario, vuelva a crear la FK para que se apoye en otro índice adecuado. Para listar las FK existentes: SELECT constraint_name, table_name FROM information_schema.key_column_usage WHERE referenced_table_name IS NOT NULL;
Más entradas de este motor
- 1129Host 'host' is blocked because of many connection errors (host bloqueado por demasiados errores de conexión)
- 1194Table 'name' is marked as crashed and should be repaired (tabla marcada como caída; debe repararse)
- 1615Prepared statement needs to be re-prepared (la sentencia preparada debe volver a prepararse)
- 3948Loading local data is disabled; this must be enabled on both the client and server sides (la carga de datos locales está deshabilitada; debe habilitarse en el cliente y en el servidor)
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key (definición de tabla incorrecta; solo puede haber una columna automática y debe definirse como clave)
- 1055Expression not in GROUP BY (only_full_group_by) (expresión que no está en GROUP BY)
- 1267Illegal mix of collations