1215: Cannot add foreign key constraint (impossible d'ajouter la contrainte de clé étrangère)
MySQLQue signifie cette erreur ?
La contrainte de clé étrangère en cours de définition ne peut pas être créée ; MySQL ne peut pas ajouter la contrainte.
Cause
Incohérence de type de données/longueur/signe (signed-unsigned) ou de jeu de caractères/collation entre la colonne enfant et la colonne référencée, absence d'index/PRIMARY KEY approprié sur la colonne référencée, tables utilisant des moteurs de stockage différents (l'une est MyISAM) ou table référencée pas encore existante.
Comment la corriger
Assurez-vous que les types de colonnes des deux côtés sont EXACTEMENT identiques (par ex. tous deux INT UNSIGNED). Vérifiez que la colonne référencée est couverte par un index (généralement PRIMARY KEY ou UNIQUE). Assurez-vous que les deux tables sont en InnoDB. Utilisez le même charset/la même collation pour les clés de type chaîne. Pour les détails : SHOW ENGINE INNODB STATUS (LATEST FOREIGN KEY ERROR).
Autres entrées pour ce moteur
- 2003Can't connect to MySQL server (TCP/IP) (connexion impossible au serveur MySQL)
- 2006MySQL server has gone away (le serveur MySQL a disparu)
- 1114The table is full (la table est pleine)
- 1451Cannot delete or update a parent row: a foreign key constraint fails (suppression ou mise à jour de la ligne parente impossible : échec de la contrainte de clé étrangère)
- 1452Cannot add or update a child row: a foreign key constraint fails (ajout ou mise à jour de la ligne enfant impossible : échec de la contrainte de clé étrangère)
- 1366Incorrect string/integer value for column (valeur de chaîne/entière incorrecte pour la colonne)
- 1044Access denied for user to database (accès refusé à la base de données pour l'utilisateur)