假设我有两个来自两个不同表的对象,分别称为Student
和School
。 Student
表存储School
表的外键,因此它是多对一关系。例如:
Student Obj (pk = 251)
- school_pk = 24 (Attribute can be null)
School Obj (pk = 24)
现在,如果删除主键为24的School
对象会怎样?主键为251的Student
对象是否在删除过程中也进行了更新,以使其属性school_pk
设置为null
?
答案 0 :(得分:3)
开箱即用,如果您的数据库在处理外键方面做得很好,那么删除学校的工作就会失败,因为仍有学生在引用它。
如果外键定义为on delete cascade
,则删除学校还将删除所有引用该学校的学生。某些数据库还支持on delete set null
选项,当删除了他们所参考的学校时,该选项会将所有参考学生的school_pk
列更新为null
。