2013-10-03 69 views
0

我正在使用SQLAlchemy和两个不同的会话对象。在一个对象中,我将行插入到mysql数据库中。在另一个会话中,我正在查询该数据库的最大行ID。但是,第二次会话不会查询数据库中的最新内容。如果我手动查询数据库,我会看到正确的,更高的最大行ID。如何强制SQLAlchemy更新行

如何强制第二次会话查询实时数据库?

+0

为什么你需要两个会话来达到这个目的? –

+0

我可能不这样做,但是这是代码当前编写的方式,如果对此问题有简单的修复,我宁愿不重构它。 –

+0

简单的修复就是重写你的代码。 –

回答

1

第一个会话需要提交以刷新对数据库的更改。

first_session.commit() 

会议在内存中保存的所有对象,并一起刷新他们的数据库(延迟加载,为了提高效率)。因此,first_session所做的更改对正在从数据库读取数据的second_session不可见。