SQL FOREIGN KEY 约束

sql foreign key 约束

foreign key 是指表中某一个字段的取值全部引用另一个表中的 unique key(唯一约束键)的值。

foreign key (外键)约束主要用来维护两个表之间数据的一致性。

 

让我们通过一个范例来解释外键。请看下面两个表:

"persons" 表:

p_id lastname firstname address
1 hansen ola timoteivn 10
2 svendson tove borgvn 23
3 pettersen kari storgt 20

"orders" 表:

o_id orderno p_id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

请注意,"orders" 表中的 "p_id" 列指向 "persons" 表中的 "p_id" 列。

"persons" 表中的 "p_id" 列是 "persons" 表中的 primary key。

"orders" 表中的 "p_id" 列是 "orders" 表中的 foreign key。

foreign key 约束用于预防破坏表之间连接的行为。

foreign key 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

 

1. create table 中 foreign key 约束

下面的 sql 在 "orders" 表创建时在 "p_id" 列上创建 foreign key 约束:

mysql:

create table orders
(
o_id int not null,
orderno int not null,
p_id int,
primary key (o_id),
foreign key (p_id) references persons(p_id)
)
相关文章