Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens l'erreur « Impossible d'écrire ; clé en double dans la table » (Erreur 1022) lors de la création d'une table MySQL ?

Pourquoi est-ce que j'obtiens l'erreur « Impossible d'écrire ; clé en double dans la table » (Erreur 1022) lors de la création d'une table MySQL ?

DDD
Libérer: 2024-10-28 04:07:20
original
395 Les gens l'ont consulté

Why am I Getting

Duplication détectée : échec de création de table MySQL (erreur 1022)

En essayant de créer une table à l'aide de MySQL Workbench, les utilisateurs peuvent rencontrer le redoutable erreur 1022 : "Impossible d'écrire ; clé en double dans la table." Ce problème survient malgré l'instruction SQL apparemment simple utilisée pour la création de table. En y regardant de plus près, le problème devient apparent :

Le coupable : noms de clés étrangères identiques

Le message d'erreur provient de la présence de plusieurs clés étrangères avec des noms identiques dans le même modèle de base de données. Pour comprendre ce concept, considérons l'analogie suivante :


  • Dans le monde de l'entreprise, chaque employé est associé à un seul service.

  • < ;li>De même, dans une base de données, chaque ligne d'une table enfant doit faire référence à une seule ligne d'une table parent.
  • Ce mécanisme de référencement est établi via des clés étrangères, qui agissent comme des ponts. entre les tables.

Le problème survient lorsque deux clés étrangères différentes dans des tables différentes font référence à la même colonne de la table parent. Tout comme un employé ne peut pas travailler dans deux départements à la fois, une ligne de table enfant ne peut pas avoir plusieurs clés étrangères pointant vers différentes lignes de table parent.

Un exemple physique

Considérez le modèle de base de données suivant :


  • Le tableau "Catalogue" contient une liste de produits.

  • Le tableau "Fournisseur" contient un liste des fournisseurs.

Si les deux tables contiennent des clés étrangères nommées "supplier_id" qui font référence à la table "Supplier", MySQL renverra l'erreur 1022. Pour résoudre Pour résoudre ce problème, il est essentiel d'attribuer des noms uniques aux clés étrangères.

Résoudre le conflit de noms

Pour rectifier l'erreur, suivez ces étapes :

  1. Ouvrez l'instruction SQL et localisez les définitions de clé étrangère.
  2. Identifiez tous les noms de clé étrangère en double.
  3. Renommez la clé étrangère en double en un nom unique.
  4. Implémentez l'instruction SQL mise à jour pour créer la table.

En résolvant le conflit de noms dans les clés étrangères, vous pouvez créer avec succès la table souhaitée et éviter le message « Impossible d'écrire ; clé en double dans la table" erreur.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal