Maison > Article > base de données > Pourquoi est-ce que je reçois une erreur 1215 de contrainte de clé étrangère ?
Erreur de contrainte de clé étrangère : 1215
Lors de la tentative de création de tables de base de données avec des contraintes de clé étrangère, un code d'erreur 1215 peut se produire. Cela indique un problème lors de l'ajout d'une contrainte de clé étrangère, souvent dû à une incompatibilité de type de données.
Analyse détaillée :
Le message d'erreur suggère que la colonne de clé étrangère classLeader dans la table de classe ne peut pas référencer la clé primaire studentID dans la table des étudiants car leurs types de données ne correspondent pas. Dans la configuration de la base de données fournie, classLeader est un type VARCHAR (chaîne), tandis que studentID est un type INT (entier). Les références de clé étrangère nécessitent un type de données correspondant pour la validation de l'intégrité des données.
Alternatives :
Pour résoudre l'erreur, le type de données de classLeader doit être modifié en INT ou vice versa, en fonction des besoins de l'entreprise. Si le stockage des noms réels des étudiants dans classLeader est crucial, une table de jointure supplémentaire ou un index unique sur les colonnes firstName et lastName de la table student peut être utilisé pour garantir la cohérence des données.
Remplir les tables avec des clés étrangères. :
Les tables avec contraintes de clé étrangère ont un ordre de remplissage spécifique. La table principale (étudiant) doit être remplie avant la table de référence (classe), sinon des violations de contraintes de clé étrangère se produiront. Lors du remplissage de la table des classes, la valeur classLeader doit faire référence à un studentID valide dans la table des étudiants.
Nature des clés étrangères :
Les clés étrangères ne sont pas des clés primaires ou uniques eux-mêmes. Ils sont utilisés pour établir une relation entre deux tables, garantissant ainsi que l'intégrité des données reste intacte. Dans ce cas, la clé étrangère classLeader garantit que chaque classe se voit attribuer un identifiant d'étudiant valide, maintenant ainsi la cohérence des données entre les deux tables.
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!