Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens l'erreur MySQL 1022 lors de la création d'une table avec des clés étrangères ?

Pourquoi est-ce que j'obtiens l'erreur MySQL 1022 lors de la création d'une table avec des clés étrangères ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 02:39:02252parcourir

Why Am I Getting MySQL Error 1022 When Creating a Table with Foreign Keys?

Erreur MySQL 1022 : dévoiler la cause profonde

La création de tables est un aspect fondamental de la conception d'une base de données, mais parfois, des erreurs inattendues peuvent survenir. L'une de ces erreurs est la fameuse erreur MySQL 1022, qui se produit souvent lors de la tentative de création d'une table avec des clés en double.

Dans un cas récent, un utilisateur a rencontré cette erreur alors qu'il utilisait MySQL Workbench pour créer la table « error_reports ». . Bien que le tableau paraisse valide, MySQL a obstinément refusé de s'y conformer, invoquant la présence de clés en double.

Recherche de la clé incriminée

Impossible de localiser visuellement la clé problématique, l'utilisateur a minutieusement éliminé des éléments de la définition de la table, isolant finalement le coupable : une contrainte de clé étrangère faisant référence à la table des « erreurs ».

Le cas curieux des clés étrangères identiques

Étrangement, l'utilisateur avait rencontré sans problème des définitions de clés étrangères identiques dans d'autres tables. Cependant, dans ce cas, MySQL a refusé de tolérer la duplication.

Démasquer le conflit

La solution à ce dilemme déroutant réside dans le concept de conventions de dénomination des clés étrangères. Il s’avère que les clés étrangères ne peuvent pas partager le même nom au sein d’une base de données. En effet, MySQL utilise des noms de clés étrangères pour déterminer à quelle table et colonne la référence pointe. Attribuer le même nom à plusieurs clés étrangères peut conduire à la confusion et à l'ambiguïté.

Un chemin plus clair vers la création de table

Pour résoudre l'erreur et créer avec succès les « rapports_erreurs » table, l'utilisateur a ajusté le nom de la clé étrangère incriminée. En s'assurant que les noms de clés étrangères étaient uniques, l'utilisateur satisfaisait à la convention de dénomination de MySQL et ouvrait la voie à une création de table réussie.

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