我在我的python代碼(收集twitter狀態並存儲在數據庫中)中出現瞭如下錯誤。SQLAlchemy嵌套回滾錯誤
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back by a nested rollback() call. To begin a new transaction, issue Session.rollback() first.
我想知道問題是什麼,爲什麼會發生,以及如何解決它。我不知道nested rollback
。有沒有簡單的例子發生nested rollback
?
編輯:該問題得到解決。 在這種情況下,直到我們明確地調用回滾時纔會執行回滾,所以當我們包含commit()
時,我們應該在try語句中編寫它,並在http://www.sqlalchemy.org/trac/wiki/FAQ#Thetransactionisinactiveduetoarollbackinasubtransaction
rollback()
而且,這裏是正確的代碼示例。我從上面的鏈接引用了這個。
try:
<use session>
session.commit()
except:
session.rollback()
raise
finally:
session.close() # optional, depends on use case
明白了。 因此,我應該在異常聲明中明確地寫**「session.rollback()」**。 非常感謝。 – fbessho 2012-01-15 17:24:21
鏈接沒有中斷,但該部分不存在了... – fedorqui 2013-11-08 13:15:08
鏈接斷開...! – 2015-07-09 15:48:15