dar*_*rse 3 database foreign-keys relational-database
假设我有来自两个不同表的两个对象,分别称为Student、 和School。该Student表存储了该表的外键School,因此是多对一的关系。例如:
Student Obj (pk = 251)
- school_pk = 24 (Attribute can be null)
School Obj (pk = 24)
Run Code Online (Sandbox Code Playgroud)
School现在,如果我删除主键为 24 的对象会发生什么?主键为 251 的对象Student在删除过程中是否也被更新,使其属性school_pk被设置为null?
开箱即用,如果您的数据库能够正确处理外键,则删除学校就会失败,因为仍然有学生引用它。
如果外键定义为on delete cascade,则删除学校也会删除引用该学校的所有学生。一些数据库还支持一个on delete set null选项,该选项会将所有引用学生的school_pk列更新为null他们引用的学校被删除时。