Erreur de contrainte de clé étrangère MySQL : analyse de la cause
Lorsque vous essayez de créer une table avec une contrainte de clé étrangère dans MySQL, vous pouvez rencontrez l’erreur énigmatique : « Impossible d’ajouter une contrainte de clé étrangère. » Cette erreur peut laisser perplexe, surtout si vous vous êtes assuré de l'existence de la clé primaire dans la table référencée.
Pour découvrir la cause de cette erreur, exécutez la commande suivante :
SHOW ENGINE INNODB STATUS;
Cette commande affiche des informations détaillées sur le moteur InnoDB, y compris les contraintes de clé étrangère et leurs erreurs.
L'une des raisons les plus courantes de cette erreur est une incompatibilité entre le champ référencé et le champ de clé étrangère. Ils doivent correspondre dans les aspects suivants :
Une autre cause potentielle est la définition d'une condition SET NULL pour un clé étrangère, même si certaines colonnes de la table de référence ne sont PAS NULL. Pour éviter cette erreur, assurez-vous que toutes les colonnes impliquées dans la contrainte de clé étrangère ne sont PAS NULL.
N'oubliez pas que même s'il est possible de désactiver temporairement les vérifications de clé étrangère avec "set Foreign_key_checks=0", cela ne doit être fait que pour à des fins de débogage spécifiques. Assurez-vous toujours que les contraintes de clé étrangère sont activées pour maintenir l'intégrité des données dans votre base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!