Django中的外键如何使用(django,开发技术)

时间:2024-04-29 20:50:39 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Django%E4%B8%AD%E7%9A%84%E5%A4%96%E9%94%AE%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8

数据库层面的约束有四种:

RESTRICT:默认的选项,如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;

NOACTION:同 RESTRICT效果一样,也是首先先检查外键;

CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;

SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;

为什么ORM能越过数据库的约束呢?

是因为ORM操作是反过来的,比如我们在ORM模型中设置了on_delete=models.CASCADE,那么在进行删除的时候,如果发现在数据库层面有父表约束着它,使他不能被删除,那么ORM就会先去删除父表,再来删除指定的表,从而达到越过了数据库层面的约束。

本文:Django中的外键如何使用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Mysql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL是什么下一篇:

14 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18