子(父)表
了解外键约束,首先认识一下子(父)表的基本概念。
父表:被外键引用的表
子表:引用父表中的主键作为外键的表
外键
外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束。外键用来建立和加强两个表数据之间的连接。
优点:可以使得两张表关联,保证数据的一致性和实现一些级联操作。
作用:保证数据的一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用父表中的列的值。
类别以及定义
在设置外键约束的时候,删除(
D
e
l
e
t
e
Delete
Delete)和更新(
U
p
d
a
t
e
Update
Update)有四种约束条件可以选
N
o
n
e
None
None、
R
e
s
t
r
i
c
t
Restrict
Restrict、
C
a
s
c
a
d
e
Cascade
Cascade和
S
e
t
n
u
l
l
Set null
Setnull。它们的区别如下:
N
o
n
e
None
None:需要先检查外键,如果想要
D
e
l
e
t
e
Delete
Delete(或
U
p
d
a
t
e
Update
Update)父表的记录时,而在子表中有关联该父表的记录,则不允许
D
e
l
e
t
e
Delete
Delete(或
U
p
d
a
t
e
Update
Update)父表中的记录。
R
e
s
t
r
i
c
t
Restrict
Restrict:同
N
o
n
e
None
None。
C
a
s
c
a
d
e
Cascade
Cascade:父表
D
e
l
e
t
e
Delete
Delete(或
U
p
d
a
t
e
Update
Update)的时候,子表会
D
e
l
e
t
e
Delete
Delete(或
U
p
d
a
t
e
Update
Update)掉关联记录;反之,则不成立。
S
e
t
n
u
l
l
Set null
Setnull:父表
D
e
l
e
t
e
Delete
Delete(或
U
p
d
a
t
e
Update
Update)的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null。