ホームページ >データベース >mysql チュートリアル >MySQL で複数列の主キーを参照するにはどうすればよいですか?

MySQL で複数列の主キーを参照するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-02 18:16:15684ブラウズ

How Do I Reference a Multi-Column Primary Key in MySQL?

MySQL での複数列の主キーの参照

テーブル間のリレーションシップを確立する場合、主キーが複数の列で構成されるシナリオがよく発生します。列。 MySQL では、このようなテーブルに外部キーを作成するには、カスタマイズされたアプローチが必要です。

次の主キーを持つテーブルがあるシナリオを考えてみましょう:

CREATE TABLE ProductAttributes (
  product_id INT NOT NULL,
  attribute_id INT NOT NULL,
  PRIMARY KEY (product_id, attribute_id)
);

次に、 ProductAttributes テーブルを参照する必要がある別のテーブル。 2 つのテーブルをリンクする外部キーを確立するには、次の手順に従います。

CREATE TABLE MyReferencingTable AS (
  [COLUMN DEFINITIONS]
  refcol1 INT NOT NULL,
  rofcol2 INT NOT NULL,
  CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
                        REFERENCES ProductAttributes(product_id, attribute_id)
) ENGINE=InnoDB;

参照テーブルの列と主キー テーブルの対応する列を指定することで、外部キー制約を作成します。この制約により、参照テーブルの各行が主キー テーブル内の一致する主キーを持つことが保証されます。

考慮事項:

  • MySQL では、外部キーがインデックス付き。これは、参照している列のインデックスを説明します。
  • 制約構文を利用して、制約に名前を付けやすくします。
  • InnoDB は外部キーを強制しますが、MyISAM は外部キーを無視することに注意してください。

以上がMySQL で複数列の主キーを参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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