Maison >base de données >tutoriel mysql >Erreur MySQL 1022 : comment résoudre les contraintes de clé en double lors de la création d'une table ?

Erreur MySQL 1022 : comment résoudre les contraintes de clé en double lors de la création d'une table ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-18 10:34:14310parcourir

MySQL Error 1022: How Do I Resolve Duplicate Key Constraints When Creating a Table?

Erreur MySQL 1022 : clé en double dans la table

Scénario :

Lors de la tentative de création une table, vous rencontrez une erreur 1022 déroutante indiquant une violation de contrainte de clé en double. Malgré l'examen de la requête, la source de la duplication reste insaisissable.

Explication :

Bien que le message d'erreur mentionne une clé en double dans la table usercircle, la cause peut en être la cause. dans une autre partie du schéma de base de données. Les contraintes, telles que les contraintes de clé étrangère et de clé unique, doivent être uniques dans l'ensemble de la base de données, et pas seulement dans une seule table.

Solution :

  1. Identifier les contraintes en double :

    • Exécutez la requête suivante pour savoir où les contraintes sont utilisées dans la base de données :
    SELECT `TABLE_SCHEMA`, `TABLE_NAME`
    FROM `information_schema`.`KEY_COLUMN_USAGE`
    WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');
  2. Renommer les contraintes en double :

    • Si vous localisez les contraintes en double, renommez-les simplement pour résoudre le conflit. Par exemple, s'il existe une autre contrainte nommée iduser dans une autre table, renommez-la en iduser_other.
  3. Recréer la table :

    • Une fois les contraintes en double renommées, recréez la table usercircle avec la mise à jour requête.

En suivant ces étapes, vous pouvez résoudre l'erreur 1022 et créer avec succès la table souhaitée sans contraintes de clé en double.

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