Pour trouver l'erreur spécifique, exécutez ceci :
SHOW ENGINE INNODB STATUS;
Et regardez dans le LATEST FOREIGN KEY ERROR rubrique.
Le type de données de la colonne enfant doit correspondre exactement à la colonne parent. Par exemple, depuis medicalhistory.MedicalHistoryID est un INT , Patient.MedicalHistory doit également être un INT , pas un SMALLINT .
En outre, vous devez exécuter la requête set foreign_key_checks=0 avant d'exécuter le DDL afin que vous puissiez créer les tables dans un ordre arbitraire plutôt que d'avoir à créer toutes les tables parents avant les tables enfants appropriées.