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

MySQL :ERREUR 1215 (HY000) :Impossible d'ajouter une contrainte de clé étrangère

Lorsque vous obtenez ce message d'erreur vague, vous pouvez trouver l'erreur plus spécifique en exécutant

SHOW ENGINE INNODB STATUS;

Les raisons les plus courantes sont que lors de la création d'une clé étrangère, le champ référencé et le champ de clé étrangère doivent correspondre :

  • Moteur devrait être le même ex. InnoDB
  • Type de données doivent être identiques et de même longueur.
    ex. VARCHAR(20) ou INT(10) UNSIGNED
  • Collation devrait être le même. par ex. utf8
  • Unique - La clé étrangère doit faire référence à un champ unique (généralement privé) dans la table de référence.

Une autre cause de cette erreur est :
Vous avez défini une condition SET NULL bien que certaines colonnes soient définies comme NOT NULL.