多表事务SQLAlchemy

2024-04-26 17:54:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想存两张桌子。假设我需要先插入到tbl_1,然后使用生成的id插入到tbl_2,然后在插入之后调用commit命令。就我目前所认可的

tbl_1.add(data1)
tbl_1.commit()

-- Retrieve the ID from tbl_1
tbl2.add(tbl_1.id, data2)
tbl2.commit()

这种方法的问题是如果tbl2.add失败,我需要删除添加到tbl\u 1中的内容。我不喜欢执行删除操作,因为我的表id增量会很混乱。我的想法是这样的

^{pr2}$

关于如何使用sqlalchemy实现这一点有什么想法吗?在

******编辑****** tbl_1和tbl2是sqlalchemy的相同会话对象。 我试着把“自动提交”设为“真”,但它起作用了

tbl_1.add(data1)
tbl_1.flush()
tbl2.add(tbl_1.id, data2)
tbl2.commit()

将“自动提交”设置为“真”或“假”有什么问题吗?在


Tags: the方法from命令addidsqlalchemyretrieve