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

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

Linda Hamilton
リリース: 2024-12-01 18:24:10
オリジナル
806 人が閲覧しました

How to Create a Foreign Key Referencing a Multi-Column Primary Key in MySQL?

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

テーブルが複数の列で定義された複合主キーを所有するリレーショナル データベース シナリオの場合(例: product_id、attribute_id)、一般的な質問が生じます。別のテーブルがこのテーブルと外部キー関係をどのように確立できるでしょうか。複数列の主キー?

解決策:

複合外部キー構文:

解決策には、複合外部キーの定義が含まれます参照テーブルのキー。このような外部キーの構文は次のとおりです。

CREATE TABLE MyReferencingTable (
    [COLUMN DEFINITIONS]
    refcol1 INT NOT NULL,
    refcol2 INT NOT NULL,
    CONSTRAINT fk_mrt_ot FOREIGN KEY (refcol1, refcol2)
                        REFERENCES OtherTable(col1, col2)
) ENGINE=InnoDB;
ログイン後にコピー
  • refcol1 および refcol2: 外部キー複合キーを形成する参照テーブル内の列。
  • col1 およびcol2: を構成する参照テーブル内の列。主キー。
  • fk_mrt_ot: この外部キーの制約名 (オプションですが推奨)。

Key考慮事項:

  • インデックス作成: MySQL では、効率的な結合操作を確保するために、外部キー列のインデックス作成が必要です。
  • CONSTRAINT 構文: 制約構文を使用すると、外部キーへの名前付き参照が提供され、その後の変更または削除が行われます。
  • エンジン: InnoDB は外部キー制約を強制するトランザクション エンジンですが、MyISAM (非トランザクション エンジン) は外部キーの仕様を無視します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート