外键取值规则:空值或参照的主键值。
(1)插入非空值时,如果主键表中没有这个值,则不能插入。
(2)更新时,不能改为主键表中没有的值。
(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
(4)更新主键记录时,同样有级联更新和拒绝执行的选择。
删除规则
指定当数据库的最终用户尝试删除某一行,而该行包含外键关系所涉及的数据时所发生的情况。如果设置为:
Restrict(限制)︰如果有从行就不能删除父行。
Cascade(级联)︰删除父表中的行会自动删除从表中的任何相关行。
No Action(无动作)︰这是默认的情况,如果有从行就不能删除父行。和restrict的区别在于何时执行约束。
Set Null(置空)︰该规则确保在父表删除一行时,讲从表的外键置空(如果允许空的话),行的其它列保持不变。