一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。
讓我們通過一個實例來解釋外鍵。請看下面兩個表:
"Persons" 表:
"Orders" 表:
請注意,"Orders" 表中的 "P_Id" 列指向 "Persons" 表中的 "P_Id" 列。
"Persons" 表中的 "P_Id" 列是 "Persons" 表中的 PRIMARY KEY。
"Orders" 表中的 "P_Id" 列是 "Orders" 表中的 FOREIGN KEY。
FOREIGN KEY 約束用於預防破壞表之間連接的行為。
FOREIGN KEY 約束也能防止非法數據插入外鍵列,因為它必須是它指向的那個表中的值之一。
下面的 SQL 在 "Orders" 表創建時在 "P_Id" 列上創建 FOREIGN KEY 約束:
MySQL:
CREATE TABLE OrdersSQL Server / Oracle / MS Access:
CREATE TABLE Orders如需命名 FOREIGN KEY 約束,並定義多個列的 FOREIGN KEY 約束,請使用下面的 SQL 語法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders當 "Orders" 表已被創建時,如需在 "P_Id" 列創建 FOREIGN KEY 約束,請使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders如需命名 FOREIGN KEY 約束,並定義多個列的 FOREIGN KEY 約束,請使用下面的 SQL 語法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders如需撤銷 FOREIGN KEY 約束,請使用下面的 SQL:
MySQL:
ALTER TABLE OrdersSQL Server / Oracle / MS Access:
ALTER TABLE Orders