Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens l'erreur MySQL 150 : Échec de la contrainte de clé étrangère ?
MySQL Errno 150 : Échec de la contrainte de clé étrangère
Lors de la tentative de création d'une contrainte de clé étrangère, les utilisateurs peuvent rencontrer l'erreur n° 150. Une clé étrangère la contrainte garantit l'intégrité des données en référençant un champ dans une autre table, forçant le champ référencé à exister dans la source table.
Cause potentielle : écart de type de données
Une cause fréquente de l'erreur n° 150 est une divergence dans les types de données entre la colonne référencée dans la table enfant (Sections) et la colonne de clé primaire dans la table référencée (Instructeurs).
Exemple :
create TABLE Instructors ( ... ID int(10), ... );
create table Sections ( ... Instructor_ID varchar(10), ... FOREIGN KEY (Instructor_ID) REFERENCES Instructors(ID) ... );
Dans cet exemple, la colonne ID de la table Instructeurs est définie comme un entier, tandis que l'Instructor_ID La colonne de la table Sections est définie comme une chaîne. Cette différence de types de données empêche l'établissement de la contrainte de clé étrangère.
Solution :
Pour résoudre ce problème, assurez-vous que les types de données des colonnes référencées dans les deux les tableaux correspondent. Dans l'exemple ci-dessus, remplacez Instructor_ID par un type de données entier :
create table Sections ( ... Instructor_ID int(10), ... );
Autres causes potentielles :
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!