外键/约束(FIREUGN KEY Constraints)

外键作用:保证数据一致性和完整性,控制两表之间的关联性外键可以使得,外键关联的表对应列可以是随之关联的删除或者设置成空值。

外键:外表的主键,在我们这个表里用的是普通索引,在外面的表用到的主键,这样才能关联起来。

外表对应关联的列必须是主键

例:有a b两个表

a表中存有客户号,客户名称

b表中存储每个客户的订单

a是主表,b是外表

有了外键后,只能在确信在b表中没有客户x的订单后,才可以在a表中删除客户x,避免客户都被删掉了,订单还存在,导致数据不一致。

外键太麻烦,带来索引效率会降低,冲突会多些。

建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)

指定主键关键字:foreign key(列名)

引用外键关键字:referebces<外键表名<外键列名

时间触发限制:on delete 和 on update 可设参数 cascade(跟随外键改动),restrict(限制外表中的外键改动),set NULL设空值,set Default(设默认值),【默认】no action

image.png

image.png

image.png

image.png

image.png