SQLAlchemy:刷新或刷新以在添加后获取插入对象的id?

时间:2018-06-15 00:15:13

标签: python transactions sqlalchemy

我已经看到了两种获取插入对象的自动生成ID的方法,一种是使用flush,另一种是用户刷新。两种方法都有优势吗?例如,如果另一个进程添加了对象但最终决定不提交,或者刷新进行另一个数据库调用,则flush可能会获取错误的id。

所以代码看起来像这样:

visit = Visit()
session.add(visit)
#option 1:
session.flush()
print("id 1", visit.id)
session.commit()
#option 2:
session.refresh(visit)
print("id 2", visit.id)

方法是独立的,我可以注释掉刷新和刷新仍然有效,反之亦然。这样做的正确方法是什么?

0 个答案:

没有答案