Você geralmente recebe esse erro se suas tabelas usarem o mecanismo InnoDB. Nesse caso, você teria que descartar a chave estrangeira e, em seguida, alterar a tabela e descartar a coluna.
Mas a parte complicada é que você não pode descartar a chave estrangeira usando o nome da coluna, mas, em vez disso, você teria que encontrar o nome usado para indexá-la. Para encontrar isso, emita o seguinte select:
SHOW CREATE TABLE região;
Isso deve mostrar o nome do índice, algo assim:
CONSTRAINTregion_ibfk_1
FOREIGNKEY (country_id
) REFERÊNCIAScountry
(id
) NA EXCLUSÃO NOAÇÃO NA ATUALIZAÇÃO SEM AÇÃO
Agora basta emitir um:
alterar a região da tabela descartar a chave estrangeiraregion_ibfk_1
;
E por fim um:
alterar a região da tabela drop columncountry_id;
E você está pronto para ir!