这个FOREIGN KEY
约束用于防止破坏表之间链接的操作。
FOREIGN KEY
是一个表中的一个字段(或字段集合),它引用PRIMARY KEY
在另一张表格上。
具有外键的表称为子表,具有主键的表称为引用表或父表。
看下面两个表:
PersonID | LastName | FirstName | Age |
---|---|---|---|
1 | Hansen | Ola | 30 |
2 | Svendson | Tove | 23 |
3 | Pettersen | Kari | 20 |
OrderID | OrderNumber | PersonID |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
请注意,"Orders" 表中的"PersonID" 列指向"Persons" 表中的"PersonID" 列。
"Persons" 表中的 "PersonID" 列是PRIMARY KEY
在"Persons" 表中。
"Orders" 表中的 "PersonID" 列是 FOREIGN KEY
在"Orders" 表中。
这个FOREIGN KEY
约束可防止将无效数据插入到外键列中,因为它必须是父表中包含的值之一。
以下 SQL 创建一个FOREIGN KEY
创建 "Orders" 表时在 "PersonID" 列上:
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
允许命名FOREIGN KEY
约束,并定义一个 FOREIGN KEY
对多列进行约束,使用以下 SQL 语法:
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)
);
创建一个FOREIGN KEY
当已创建 "Orders" 表时,对 "PersonID" 列进行约束,请使用以下 SQL:
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
允许命名FOREIGN KEY
约束,并定义一个 FOREIGN KEY
对多列进行约束,使用以下 SQL 语法:
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
删除一个FOREIGN KEY
约束,使用以下 SQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!