• sqlalchemy的cascades


    http://docs.sqlalchemy.org/en/latest/orm/cascades.html

    class Order(Base):
        __tablename__ = 'order'
    
        items = relationship("Item", cascade="all, delete-orphan")
        customer = relationship("User", cascade="save-update")
    
    The default value of cascade is save-update, merge. The typical alternative setting for this parameter is either all or more commonly all, delete-orphan. The all symbol is a synonym for save-update, merge, refresh-expire, expunge, delete, and using it in conjunction with delete-orphan i
    
    名词解释
    级联删除:数据库对象删除后,相应的set等集合内容也删除。
    删除孤儿:set等集合内容删除后,相应的数据库对象也会删除
    

    cascade属性值的区别

    none: 不级联操作
    save-update:(针对的是当对当前对象进行save或update操作时,要对想关联的对象进行save和update操作)
    all:(包含如下所有情况delete,save-update)
    delete:级联删除
    delete-orphan:级联删除孤儿
    all-delete-orphan:级联删除delete,也包含级联save-update、delete-orphan
    

    backref(relation( )only),反向的关系自动声明

    cascade,层叠改变关系
    主要用于1对多,当parent改变,Children也会改变,参数是all,delete,save-update,refresh-expire,merge,expunge,delete-orphan, collection_class,
    foreign_keys,外键申明数组
    join_depth=None,连接深度
    lazy=True,
    order_by,排序
    passive_deletes=False,如果为true,表示自动删除子关联,当主键为null或者父删除
    post_update=False,如果设置为true,SQLAlchemy会分开CRUD操作,否则将会把CRUD操作放在一个声明里
    primaryjoin,设定怎么连接父表和子表
    remote_side,用于本表关联
    secondary,在多对多关系中,用来声明关系表
    secondaryjoin,多对多关系,声明父表如何链接关系表
    uselist=True,1对1关系时声明
    viewonly=False,只读操作连接
    
  • 相关阅读:
    检测是否安装了新包
    redux和mobx的比较
    ssh登录远程服务器
    法律
    如何解决二方包彼此依赖?
    创业
    【转】裸辞4个月,面试30家公司。
    添加群机器人
    RESTful状态码说明
    MongoDB简单介绍以及基本命令
  • 原文地址:https://www.cnblogs.com/liujitao79/p/6343825.html
Copyright © 2020-2023  润新知