MySQL中外键设置时CASCADE
、NO ACTION
、RESTRICT
、 SET NULL
有什么区别?
在设置外键的时候,删除时和更新时两列有四个值可以选择:CASCADE
、NO ACTION
、RESTRICT
、SET NULL
,它们的区别如下:
CASCADE
:父表delete、update的时候,子表会delete、update掉关联的记录;NO ACTION
:在delete、update父表的记录时,如果在子表中有关联该父表的记录,则不允许delete、update父表中的记录;RESTRICT
:同NO ACTION
一样,都是立即检查外键约束;SET NULL
:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以要注意不能将子表的外键设置为not null
。