Maison >base de données >tutoriel mysql >Pourquoi MySQL génère-t-il une erreur « La contrainte de clé étrangère est mal formée » ?
Dépannage des erreurs de contrainte de clé étrangère de MySQL
La création d'une relation de clé étrangère dans MySQL nécessite une attention particulière à la compatibilité des types de données. Des types de données ou des longueurs incompatibles entre la colonne de clé étrangère et la colonne de clé primaire référencée entraîneront une erreur « La contrainte de clé étrangère est mal formée ».
Voici un scénario courant :
ID
(clé primaire) avec un type de données CHAR
.IDFromTable1
faisant référence à la colonne ID
du Tableau1.Tentative de création de la contrainte de clé étrangère à l'aide de cette requête :
<code class="language-sql">ALTER TABLE `table2` ADD CONSTRAINT `FK1` FOREIGN KEY (`IDFromTable1`) REFERENCES `table1` (`ID`) ON UPDATE CASCADE ON DELETE CASCADE;</code>
échouera si IDFromTable1
et ID
ont des types ou des longueurs de données différents. Par exemple, si IDFromTable1
est VARCHAR(50)
et ID
est CHAR(10)
, la contrainte ne sera pas créée.
Solution :
La solution est simple : assurez-vous que la colonne de clé étrangère et la colonne référencée partagent exactement le même type de données et la même longueur. Ajuster les définitions de colonnes pour qu'elles correspondent résoudra l'erreur et permettra d'établir avec succès la relation de clé étrangère.
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!