SQL FOREIGN KEY 約束
一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。
透過一個例子來解釋外來鍵。請看下面兩個表:
"Persons" 表:
Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
"Orders" 表:
Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
請注意,"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。
"Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。
"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。
FOREIGN KEY 約束用於預防破壞表之間連線的動作。
FOREIGN KEY 約束也能防止非法資料插入外來鍵列,因為它必須是它指向的那個表中的值之一。
下面的 SQL 在 "Orders" 表建立時為 "Id_P" 列建立 FOREIGN KEY:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (O_Id),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
如需撤銷 FOREIGN KEY 約束,請使用下面的 SQL:
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
SQL FOREIGN KEY 約束
一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。
透過一個例子來解釋外來鍵。請看下面兩個表:
"Persons" 表:
Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
"Orders" 表:
Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
請注意,"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。
"Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。
"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。
FOREIGN KEY 約束用於預防破壞表之間連線的動作。
FOREIGN KEY 約束也能防止非法資料插入外來鍵列,因為它必須是它指向的那個表中的值之一。
下面的 SQL 在 "Orders" 表建立時為 "Id_P" 列建立 FOREIGN KEY:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (O_Id),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
如需撤銷 FOREIGN KEY 約束,請使用下面的 SQL:
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders