MYSQL - No puede ser capaz de crear clave externa
-
21-09-2019 - |
Pregunta
Cuando ejecuto la consulta a continuación se emite un error,
alter table `ttis`.`users`
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)
Error:
Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)
Solución
Tener un vistazo a este post: 13.6.4.4. Las restricciones FOREIGN KEY y la búsqueda de "150". Aquí dice:
Si vuelve a crear una mesa que estaba caído, debe tener una definición que se ajusta a la clave externa restricciones referencia a ella. Debería tienen los nombres de columna y tipos derecha, y debe tener los índices de la teclas de referencia, como se dijo anteriormente. Si estos no son satisfechas, los rendimientos de MySQL número de error 1005 y se refiere al error 150 en el mensaje de error.
Si MySQL reporta un número de error 1005 de una sentencia CREATE TABLE, y el mensaje de error se refiere al error 150, creación de la tabla falló debido a una restricción de clave externa no era correctamente formada. Del mismo modo, si una ALTER TABLE falla y se refiere a error 150, que significa una clave externa definición estaría formado incorrectamente para la tabla alterada. Puedes usar Mostrar estado INNODB para mostrar una explicación detallada de los más InnoDB reciente error de clave externa de la servidor.