Django数据模型on_delete属性值

  1. CASCADE
    • 级联删除。当关联对象被删除时,当前对象也会被删除。
    • 这是Django的默认行为(在需要显式声明on_delete之前的版本中)。
  2. PROTECT
    • 保护模式。当尝试删除关联对象时,如果当前对象存在外键引用,则抛出 ProtectedError 异常,阻止删除。
    • 这有助于防止意外删除有依赖关系的对象。
  3. SET_NULL
    • 设置为空。当关联对象被删除时,将当前对象的外键字段设置为 None(即空值)。
    • 要求外键字段允许为空(即 null=True)。
  4. SET_DEFAULT
    • 设置为默认值。当关联对象被删除时,将当前对象的外键字段设置为一个默认值。
    • 要求外键字段有默认值设置(即 default=...)。
  5. SET(...)
    • 自定义设置。允许指定一个值或可调用对象,当关联对象被删除时,将当前对象的外键字段设置为该值或可调用对象的返回值。
    • 如果指定的是可调用对象,它应该在删除发生时被调用,并返回一个适当的值。
  6. DO_NOTHING
    • 不采取任何操作。当关联对象被删除时,Django不会对当前对象的外键字段进行任何操作。
    • 这可能导致数据库完整性错误,如果数据库层面没有相应的外键约束来防止孤立记录的话。
相关推荐
高梦轩3 小时前
MySQL高可用
android·运维·数据库
ggabb4 小时前
美国大力投资AI的原因分析
sqlite
紫金修道5 小时前
【DeepAgent】概述
开发语言·数据库·python
孟章豪6 小时前
《SQL拼接 vs 参数化,为什么公司禁止拼接SQL?(附真实案例)》
服务器·数据库·sql
荒川之神6 小时前
ORACLE LEVEL函数练习
数据库·oracle
·云扬·6 小时前
【MySQL】实战:用pt-table-sync修复主从数据一致性问题
数据库·mysql·ffmpeg
swIn KWAL7 小时前
【MySQL】环境变量配置
数据库·mysql·adb
shark22222227 小时前
【JOIN】关键字在MySql中的详细使用
数据库·mysql
RATi GORI7 小时前
MySQL中的CASE WHEN语句:用法、示例与解析
android·数据库·mysql
坊钰7 小时前
Java 死锁问题及其解决方案
java·开发语言·数据库