SQL FOREIGN KEY 关键字
FOREIGN KEY
FOREIGN KEY
约束是用于将两个表链接在一起的键。
FOREIGN KEY 是一个表中的一个字段(或字段集合),它引用另一个表中的 PRIMARY KEY。
SQL FOREIGN KEY on 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 on 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 约束,请使用以下 SQL:
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;