Erreur MySQL 1022 : dévoiler la cause première
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 lors de l'utilisation de 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 aux "erreurs" table.
Le cas curieux de clés étrangères identiques
Étrangement, l'utilisateur avait rencontré des définitions de clés étrangères identiques dans d'autres tables sans problème. 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 prêter à 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 « errors_reports » 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3