Maison >base de données >tutoriel mysql >Comment dépanner l'erreur MySQL 1022 : clé en double dans la création de table ?

Comment dépanner l'erreur MySQL 1022 : clé en double dans la création de table ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-29 11:14:14972parcourir

How to Troubleshoot MySQL Error 1022: Duplicate Key in Table Creation?

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

  • Assurez-vous toujours que les noms de contraintes sont uniques au sein de votre base de données pour éviter les conflits potentiels.
  • Utilisez des outils tels que des systèmes de gestion de bases de données ou des environnements de développement SQL pour faciliter la gestion des contraintes et identifiez tout problème de nommage potentiel.
  • N'oubliez pas que les contraintes de clé étrangère assurent l'intégrité des données en appliquant des relations entre les tables, mais elles nécessitent également des noms de contraintes uniques.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn