2013-10-03 34 views
0

我正在使用SQLAlchemy和兩個不同的會話對象。在一個對象中,我將行插入到mysql數據庫中。在另一個會話中,我正在查詢該數據庫的最大行ID。但是,第二次會話不會查詢數據庫中的最新內容。如果我手動查詢數據庫,我會看到正確的,更高的最大行ID。如何強制SQLAlchemy更新行

如何強制第二次會話查詢實時數據庫?

+0

爲什麼你需要兩個會話來達到這個目的? –

+0

我可能不這樣做,但是這是代碼當前編寫的方式,如果對此問題有簡單的修復,我寧願不重構它。 –

+0

簡單的修復就是重寫你的代碼。 –

回答

1

第一個會話需要提交以刷新對數據庫的更改。

first_session.commit() 

會議在內存中保存的所有對象,並一起刷新他們的數據庫(延遲加載,爲了提高效率)。因此,first_session所做的更改對正在從數據庫讀取數據的second_session不可見。