Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL ne peut pas ajouter de contrainte de clé étrangère

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.