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.