1553: Cannot drop index needed in a foreign key constraint (não é possível remover um índice exigido por uma constraint de foreign key)
MySQLO 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;
Mais entradas deste banco
- 1129Host 'host' is blocked because of many connection errors (host bloqueado por excesso de erros de conexão)
- 1194Table 'name' is marked as crashed and should be repaired (tabela marcada como corrompida; deve ser reparada)
- 1615Prepared statement needs to be re-prepared (o prepared statement precisa ser preparado novamente)
- 3948Loading local data is disabled; this must be enabled on both the client and server sides (o carregamento de dados locais está desabilitado; deve ser habilitado no cliente e no servidor)
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key (definição de tabela incorreta; só pode haver uma coluna automática e ela deve ser definida como chave)
- 1055Expression not in GROUP BY (only_full_group_by) (expressão que não está no GROUP BY)
- 1267Illegal mix of collations