外键作用:保证数据一致性和完整性,控制两表之间的关联性外键可以使得,外键关联的表对应列可以是随之关联的删除或者设置成空值。
外键:外表的主键,在我们这个表里用的是普通索引,在外面的表用到的主键,这样才能关联起来。
外表对应关联的列必须是主键
例:有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