Pergunta

Quando eu executo a consulta abaixo, ele lança um erro,

alter table `ttis`.`users` 
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)

Erro:

Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)
Foi útil?

Solução

Dê uma olhada neste post: 13.6.4.4. Restrições de chave estrangeira e procure por "150". Diz aqui:

Se você recriar uma tabela que foi descartada, ela deve ter uma definição que esteja em conformidade com as restrições de chave estrangeira, referenciando-a. Ele deve ter os nomes e tipos de colunas corretos e deve ter índices nas teclas referenciadas, conforme declarado anteriormente. Se isso não estiver satisfeito, o MySQL retornará o número de erro 1005 e refere -se ao erro 150 na mensagem de erro.

Se o MySQL relatar um número de erro 1005 de uma instrução CREATE TABLE e a mensagem de erro refere -se ao erro 150, a criação da tabela falhou porque uma restrição de chave estrangeira não foi formada corretamente. Da mesma forma, se uma tabela de alter falhar e se referir ao erro 150, isso significa que uma definição de chave estrangeira seria formada incorretamente para a tabela alterada. Você pode usar o status Mostrar Engine InnoDB para exibir uma explicação detalhada do erro de chave estrangeira mais recente do Innodb no servidor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top