Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O que significa o erro 1025 do mysql (HY000):Erro ao renomear './foo' (errorno:150)?


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:

CONSTRAINT region_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!