DBAtlas · Atlas de operações de banco de dados

1553: Cannot drop index needed in a foreign key constraint (não é possível remover um índice exigido por uma constraint de foreign key)

MySQL

O que significa?

Você está tentando remover um índice exigido por uma constraint de foreign key. O InnoDB não permite remover o índice do qual uma FK depende.

Por que acontece?

No InnoDB, toda foreign key exige um índice na(s) coluna(s) que fazem a referência. Remover esse índice com DROP INDEX é rejeitado porque deixaria a constraint de FK sem suporte. Geralmente surge ao reorganizar uma tabela (limpeza de índices).

Como resolver

Primeiro remova a constraint de foreign key e depois remova o índice: ALTER TABLE my_table DROP FOREIGN KEY fk_name; e depois DROP INDEX idx_name ON my_table; Se necessário, recrie a FK de modo que ela dependa de outro índice adequado. Para listar as FKs existentes: SELECT constraint_name, table_name FROM information_schema.key_column_usage WHERE referenced_table_name IS NOT NULL;

Abrir no DBAtlas →

Mais entradas deste banco