sql >> Base de Datos >  >> RDS >> Mysql

MySQL no puede agregar una restricción de clave externa

Para encontrar el error específico, ejecute esto:

SHOW ENGINE INNODB STATUS;

Y busque en el LATEST FOREIGN KEY ERROR sección.

El tipo de datos de la columna secundaria debe coincidir exactamente con la columna principal. Por ejemplo, desde medicalhistory.MedicalHistoryID es un INT , Patient.MedicalHistory también necesita ser un INT , no un SMALLINT .

Además, debe ejecutar la consulta set foreign_key_checks=0 antes de ejecutar el DDL para que pueda crear las tablas en un orden arbitrario en lugar de tener que crear todas las tablas principales antes que las tablas secundarias correspondientes.