sqlalchemy的cascades

it2022-05-05  156

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,只读操作连接 posted on 2017-01-23 12:40 北京涛子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liujitao79/p/6343825.html


最新回复(0)