MySQLで2つの外部キーを設定する方法は何ですか。
MySQL では外部キーの設定方法は 2 種類あります。
- 1つの列を使用して2つのテーブルを接合する:
- まず、別の表の主キー列を参照する外部キー列をテーブル内に作成する。
- そして、別のテーブルに最初のテーブルの主キー列を参照する外部キー列を作成します。
- 最後に、FOREIGN KEY制約を使用して、この2つの外部キー列をつなぎます。
たとえば、表Aと表Bという2つの表があり、表Aの主キー列がA_idで表Bの主キー列がB_idの場合、表Aと表Bとの間に2つの外部キーを作成するには、次の手順に従って設定できます。
- ALTER TABLE A ADD FOREIGN KEY (B_id) REFERENCES B(B_id);
- ALTER TABLE B ADD FOREIGN KEY (A_id) REFERENCES A(A_id);
- 結合カラムを使用した2つのテーブル間の結合
- まず、結合主キー列を参照する別テーブルの結合外部キー列をテーブルに作成します。
- そしてさらに別のテーブルに、最初のテーブルの結合主キーカラムを参照する、結合外部キーカラムを作成します。
- 最後に、FOREIGN KEY 制約を使用して、この 2 つの結合外部キー列を結び付けます。
テーブルAとテーブルBの両方が主キー列(A_id、B_id)と結合主キー列(C_id、D_id)を持つ場合に、テーブルAとテーブルBの間に外部キーを作成するには、以下の手順に従います。
- ALTER TABLE A ADD CONSTRAINT FK_A_B FOREIGN KEY (C_id, D_id) REFERENCES B(C_id, D_id);
- ALTER TABLE B ADD FOREIGN KEY (A_id, B_id) REFERENCES A(A_id, B_id);
参照されている主キー列が存在するか確認し、インデックスを作成する必要があります。また、外部キー制約は、CREATE TABLE時にFOREIGN KEY制約文で設定することもできます。