文章内容
2019/6/17 19:03:50,作 者: 黄兵
SQLAlchemy一对多级联删除
在SQLAlchemy中,如果父对象删除,那么子对象也应该删除。如:用户,与地址表的关系。在建立模型的时候写法如下:
class User(Base): # ... addresses = relationship("Address", cascade="save-update, merge, delete")
如果使用上面的映射,我们有一个User
对象和两个相关的Address
对象:
>>> user1 = sess.query(User).filter_by(id=1).first() >>> address1, address2 = user1.addresses
如果我们标记user1
删除,则在刷新操作进行后, address1
也address2
将被删除:
>>> sess.delete(user1) >>> sess.commit()
相对应SQL语句:
DELETE FROM address WHERE address.id = ? ((1,), (2,)) DELETE FROM user WHERE user.id = ? (1,) COMMIT
文章原文:Cascades¶
劳资到此一游 on 回复 有用(8)
过了3年啦!我也将从程序员转行网络工程师了,明天去考一个事业单位。加油!
游客I%!1 on 2023-12-04 23:26:49
博主回复:感谢一直关注,没想到您那么准时,每年差不多这个时候,到我博客留言,受宠若惊,我当网络工程师没多久,最主要是老板压榨过于厉害,同时我这边也有额外收入,所以一气之下,干了 20 多天,就没干了,继续开发我的项目,今年有一个项目做成了付费项目,收入慢慢上来了。在这个寒冬,大家都不容易呀!祝你一次考上事业单位。