SQL 外部キー制約の設定方法
SQLにおける外部キー制約は、あるテーブルのデータを別のテーブルのデータを参照するために使用されます。外部キー列の値は、必ず参照テーブルの主キー列に存在する必要があります。外部キー制約を設定するには、次の手順に従います。
- 参照されるテーブルと参照テーブルが作成されます。参照されるテーブルとは主キー列を含むテーブルであり、参照テーブルとは外部キー列を含むテーブルです。
- 外部キー制約を使用して、外部キー列を定義します。FOREIGN キー制約は、テーブルの作成時に追加することも、作成済みのテーブルに ALTER TABLE ステートメントを使用して追加することもできます。
- 外部キー制約では、外部キー列と、その列が参照する参照元テーブルの主キー列を指定します。構文は次のとおりです。
FOREIGN KEY (外键列) REFERENCES 被引用表名 (主键列)
たとえば、”Orders”というテーブルがあり、”CustomerID”列が外部キー列として”Customers”テーブルの”CustomerID”列という主キー列を参照する場合は、以下のステートメントを使用してFOREIGN KEY制約を設定します。
ALTER TABLE Orders
ADD FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);
- 外部キー制約が設定されると、参照テーブルにデータ挿入時に、外部キー列の値が参照テーブルの主キー列に存在するかどうかが自動的に検査されます。存在しない場合は挿入操作は拒否されます。また、参照テーブルの外部キー列の値を更新する場合にも同様に検査が行われます。
FOREIGN KEY制約を使用する際には、参照先のテーブルの主キー列がユニークである必要があります. 主キー列に重複した値が存在したり、参照先のテーブルに該当する主キー列が存在しない場合は、FOREIGN KEY制約の設定は失敗します.