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;