文章内容

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删除,则在刷新操作进行后, address1address2将被删除:

>>> sess.delete(user1)
>>> sess.commit()

相对应SQL语句:

DELETE FROM address WHERE address.id = ?
((1,), (2,))
DELETE FROM user WHERE user.id = ?
(1,)
COMMIT


文章原文:Cascades¶

分享到:

发表评论

评论列表

user-ico

劳资到此一游 on 回复 有用(8

过了3年啦!我也将从程序员转行网络工程师了,明天去考一个事业单位。加油!

游客I%!1 on 2023-12-04 23:26:49

博主回复:感谢一直关注,没想到您那么准时,每年差不多这个时候,到我博客留言,受宠若惊,我当网络工程师没多久,最主要是老板压榨过于厉害,同时我这边也有额外收入,所以一气之下,干了 20 多天,就没干了,继续开发我的项目,今年有一个项目做成了付费项目,收入慢慢上来了。在这个寒冬,大家都不容易呀!祝你一次考上事业单位。

user-ico

劳资到此一游 on 回复 有用(4

过了2年啦!感觉你好像从程序员转行网络工程师了?

游客NNFl on 2022-12-08 17:23:18

现在程序员的日志不好过,看看有没有其他的行业比较好,于是就跳槽到网络工程师了,现在干运维。哪里有饭吃就到哪里,感谢一直关注我的博客😁

user-ico

劳资到此一游 on 回复 有用(2

过了1年啦! 踩踩

游客Vu(C on 2021-11-27 14:10:05

博主回复:感谢过来坐坐😀

user-ico

劳资到此一游 on 回复 有用(1

不愧是黄兵的博客,网页背景都是黄的!

游客-P+= on 2020-10-27 11:03:45

hiahiahiahia