Maison >base de données >tutoriel mysql >Comment dépanner l'erreur MySQL 1022 : clé en double dans la création de table ?
Erreur de clé en double dans la création de table : dépannage de « Erreur 1022 »
Un utilisateur a rencontré la tristement célèbre « Erreur 1022 : Impossible d'écrire ; erreur de duplication de clé dans la table" lors de la tentative de création d'une nouvelle table. Après examen de la requête SQL, la source de la duplication n'était pas immédiatement évidente.
La requête a créé une table nommée usercircle avec plusieurs colonnes, dont idUserCircle, userId et circleId. Il a également spécifié une clé primaire sur idUserCircle et des contraintes de clé étrangère faisant référence aux tables user et circle sur les colonnes userId et circleId, respectivement.
Identifier le conflit
La clé Pour résoudre cette erreur, il faut reconnaître que les contraintes, y compris les contraintes de clé étrangère, doivent être uniques dans l'ensemble de la base de données, et pas seulement dans une table spécifique. Par conséquent, le problème sous-jacent est probablement un nom de contrainte en double ailleurs dans la base de données.
Solution
Pour déterminer quelles contraintes sont en conflit, l'utilisateur peut exécuter la requête suivante :
SELECT `TABLE_SCHEMA`, `TABLE_NAME` FROM `information_schema`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');
Cette requête révélera quelles tables et colonnes utilisent actuellement les contraintes iduser et idcategory. En renommant la ou les contraintes en double, l'utilisateur peut résoudre l'erreur et créer avec succès la table usercircle.
Conseils supplémentaires
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!