ホームページ  >  記事  >  データベース  >  キーが 1 つしかないのに、MySQL エラー 1022: 「書き込めません。テーブル内のキーが重複しています。」が発生するのはなぜですか?

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

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 14:26:29119ブラウズ

 Why Am I Getting MySQL Error 1022:

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

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

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

<code class="sql">CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,</code>

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

根本原因:

にあります。

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

解決策:

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

以上がキーが 1 つしかないのに、MySQL エラー 1022: 「書き込めません。テーブル内のキーが重複しています。」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。