我们在操作MySQL数据库的时候,有时会碰到需要删除父表中的一条记录,但是又要保留其子记录,这时我们就需要将其子记录的外键设置为null;
在SQLyog中就有这样的选择,(在你建立外键的时候没有选择的时候就可以进行这样的操作)
这里我们只是讲解关于删除的选项,然后这边的更新我没有尝试过,因为目前的业务中没有使用到过
在这里我们就可以进行设置,
Set null:删除父记录的时候将其对应的外键设置为null;(注意一点外键不能设置为null)
Cascade:相当于级联删除,在删除父记录的时候将其对应的子记录一并删除
No Action:如果子表中有匹配的记录,则不允许对父记录进行删除操作
Restrict:同 No Action ,都是立即检查外键约束
当我选择 Set null 的时候,DELETE FROM 父表 WHERE id=1
id=1的这一条记录有其对应的子记录,这时我们删除后对应的外键就将会为 null