SQL FOREIGN KEY 關鍵字
FOREIGN KEY
FOREIGN KEY 約束用於將兩個表關聯起來。
FOREIGN KEY 是一個表中的一個欄位(或一組欄位),它引用另一個表中的 PRIMARY KEY。
SQL FOREIGN KEY 在 CREATE TABLE 時
以下 SQL 在建立 "Orders" 表時,在 "PersonID" 列上建立了一個 FOREIGN KEY
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)
);
SQL FOREIGN KEY 在 ALTER TABLE 時
要在 "Orders" 表已建立後,在 "PersonID" 列上建立 FOREIGN KEY 約束,請使用以下 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);
DROP a FOREIGN KEY Constraint (刪除 FOREIGN KEY 約束)
To drop a FOREIGN KEY constraint, use the following SQL (要刪除 FOREIGN KEY 約束,請使用以下 SQL 語句)
MySQL
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
SQL Server / Oracle / MS Access
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;