MySQLFOREIGN KEY外键约束
❮ 上一节
下一节 ❯
MySQL FOREIGN KEY 外键约束
MySQL FOREIGN KEY 外键约束
FOREIGN KEY 约束用于防止破坏表之间链接的操作。
FOREIGN KEY 是一个表中的字段(或字段集合),它引用 PRIMARY KEY 在另一个表中。
具有外键的表称为子表,具有主键的表称为引用表或父表。
看下面两张表:
Persons 表
PersonID
LastName
FirstName
Age
1
Hansen
Ola
30
2
Svendson
Tove
23
3
Pettersen
Kari
20
Orders 表
OrderID
OrderNumber
PersonID
1
77895
3
2
44678
3
3
22456
2
4
24562
1
注意 "Orders" 表中的 "PersonID" 列指向 "Persons" 表中的 "PersonID" 列。
"Persons" 表中的 "PersonID" 列是 "Persons" 表中的PRIMARY KEY。
"Orders" 表中 "PersonID" 列是 "Orders" 表中的FOREIGN KEY。
FOREIGN KEY 约束防止无效数据插入外键列,因为它必须是父表中包含的值之一。
FOREIGN KEY on CREATE TABLE
要在创建 "Orders" 表时在 "PersonID" 列上创建 FOREIGN KEY 约束,请使用以下 SQL:
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 on ALTER TABLE
要在已建的 "Orders" 表的 "PersonID" 列上创建 FOREIGN KEY 约束,请使用以下 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 外键约束
要删除 FOREIGN KEY 约束,请使用以下 SQL:
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
❮ 上一节
下一节 ❯