SQL で外部キー制約を作成する方法

SQL で外部キー制約を作成する文法は次のとおりです。

**1. 表を作成するときに外部キー制約を追加する**
“`
CREATE TABLE テーブル名 (
列1 データ型,
列2 データ型,

FOREIGN KEY (外部キー列) REFERENCES 参照テーブル名 (参照テーブルの列));
“`
**例:** “Orders” という名前のテーブルを作成し、”CustomerID” という外部キー列を含め、”Customers” テーブルの “CustomerID” 列を参照します。
“`
CREATE TABLE Orders (
OrderID int,
ProductName varchar(255),
CustomerID int,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID));
“`

**2. 既存のテーブルに外部キー制約を追加する**
“`
ALTER TABLE テーブル名 ADD FOREIGN KEY (外部キー列) REFERENCES 参照テーブル名 (参照テーブルの列);
“`
**例:** 既存の “Orders” テーブルに外部キー制約を追加します。
“`
ALTER TABLE Orders ADD FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);
“`

**3. ON DELETE および ON UPDATE サブ句を使用して、主テーブルの行が削除または更新されたときの動作を指定できます。**
“`
FOREIGN KEY (外部キー列) REFERENCES 参照テーブル名 (参照テーブルの列) ON DELETE アクション ON UPDATE アクション
“`
アクションには次の値のいずれかを指定できます。

* **CASCADE:** カスケード操作、つまり主テーブルの行が削除または更新されるときに、関連する外部キーテーブルの行も同時に削除または更新されます。
* **SET NULL:** 外部キーテーブルの外部キー列を NULL に設定します。
* **SET DEFAULT:** 外部キーテーブルの外部キー列をデフォルト値に設定します。
* **NO ACTION:** アクションを実行しません。主テーブルの行が削除または更新されるときに、関連する行が外部キーテーブルに存在する場合、エラーが発生します。
* **例:** “Orders” という名前のテーブルを作成し、”CustomerID” という外部キー列を含め、”Customers” テーブルの “CustomerID” 列を参照します。カスケード削除およびカスケード更新を行います。
“`
CREATE TABLE Orders (
OrderID int,
ProductName varchar(255),
CustomerID int,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE CASCADE ON UPDATE CASCADE);
“`

bannerAds