SQL FOREIGN KEY 关键字
FOREIGN KEY
The 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);
删除 FOREIGN KEY 约束
要删除 FOREIGN KEY 约束,请使用以下 SQL
MySQL
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
SQL Server / Oracle / MS Access
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;