我已经看到了两种获取插入对象的自动生成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)
方法是独立的,我可以注释掉刷新和刷新仍然有效,反之亦然。这样做的正确方法是什么?