「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > キーが 1 つしかないのに、MySQL エラー 1022: 「書き込めません。テーブル内のキーが重複しています。」が発生するのはなぜですか?

キーが 1 つしかないのに、MySQL エラー 1022: 「書き込めません。テーブル内のキーが重複しています。」が発生するのはなぜですか?

2024 年 11 月 7 日に公開
ブラウズ:402

 Why Am I Getting MySQL Error 1022: \

MySQL エラー 1022: 外部キー名の衝突

MySQL を使用してテーブルを作成しようとすると、エラー 1022: 「書き込めません。キーが重複しています」が発生します。テーブルにあります。」特異な点は、テーブルで 1 つのキーのみが定義されているにもかかわらず、エラーが継続することです。

調査の結果、テーブル定義内の特定のスニペットがエラーをトリガーしているようです:

CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,

同様の外部キー定義が他のテーブルに問題なく存在しますが、問題は 外部キーの名前: error_id.

にあります。 ]根本原因:

この問題は、外部キー名がデータベース モデル全体内の別の外部キー名と同じであることができないために発生します。これは、2 つのテーブルが同じテーブルを参照する場合、各テーブルの外部キーには一意の名前が必要であることを意味します。

解決策:

エラーを解決するには、単に問題の外部キーは別の名前です。たとえば、fk_error_id という名前を付けることができます。これにより、モデル内の他の外部キーと区別され、MySQL がテーブルを正常に作成できるようになります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3