ホームページ  >  記事  >  データベース  >  MySQL エラー 1022: テーブルの作成時に重複キー エラーが発生するのはなぜですか?

MySQL エラー 1022: テーブルの作成時に重複キー エラーが発生するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-28 04:50:30725ブラウズ

  MySQL Error 1022: Why Am I Getting a Duplicate Key Error When Creating a Table?

MySQL エラー 1022: 重複の特定

テーブルの作成時に MySQL エラー 1022 が発生すると、特に SQL ステートメントが有効であると思われる場合、混乱する可能性があります。 。問題を詳しく調べて、根本的な原因を特定しましょう。

提供された SQL では、テーブルに定義されているキーが 1 つだけであると記載されています。ただし、問題は外部キーの定義にあるようです。 MySQL は、テーブル作成中に重複キーを挿入しようとするとエラー 1022 をスローします。

この問題は、外部キー名 (error_id) がモデル内の別の場所にある別の外部キーの名前と同じであるという事実に起因します。これを理解するために、次のシナリオを考えてみましょう。

  • テーブル "Catalog" には、テーブル "Supplier" を参照する "supplier" という外部キーが含まれています。
  • テーブル "Product" には、同じテーブル "Supplier" を参照する "supplier" という名前の外部キー。

ここで、両方の外部キーが同じ名前 ("supplier") を持つ場合、MySQL はこれを外部キーの "衝突" として解釈します。キーの名前。この問題を解決するには、各外部キーにスキーマ全体内で一意の名前を付ける必要があります。

たとえば、次のような異なる名前を外部キーに使用できます。

  • catalog_supplierテーブル "Product"
  • の外部キーに対する table "Catalog"

product_supplier 外部キー名を区別することで、MySQL はテーブルの作成時にそれらを区別し、参照整合性を正しく処理できます。 .

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

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