SQL FOREIGNKEYキーワード
外部キー
FOREIGN KEY
制約は、2つのテーブルをリンクするために使用されるキーです。
FOREIGN KEYは、あるテーブルのフィールド(またはフィールドのコレクション)であり、別のテーブルのPRIMARYKEYを参照します。
CREATETABLEのSQL外部キー
次のSQLは、「Orders」テーブルが作成されるときに「PersonID」列にFOREIGNKEYを作成します。
MySQL:
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);
FOREIGN KEY制約の命名を許可し、複数の列にFOREIGN KEY制約を定義するには、次のSQL構文を使用します。
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID)
);
ALTERTABLEのSQL外部キー
「Orders」テーブルがすでに作成されているときに「PersonID」列にFOREIGNKEY制約を作成するには、次のSQLを使用します。
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
FOREIGN KEY制約の命名を許可し、複数の列にFOREIGN KEY制約を定義するには、次のSQL構文を使用します。
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
外部キー制約を削除する
FOREIGN KEY制約を削除するには、次のSQLを使用します。
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;