为什么我得到SQLAlchemy嵌套回滚错误?

时间:2012-01-15 14:05:27

标签: python sqlalchemy

我的python代码中收到了如下错误(收集了twitter状态并存储在数据库中)。

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

1 个答案:

答案 0 :(得分:0)

问题已解决。 在这种情况下,要点是直到明确调用回滚才执行回滚,因此,当我们包含commit()时,应将其写入try语句中,并将rollback()写入异常语句中( (在大多数情况下)http://www.sqlalchemy.org/trac/wiki/FAQ#Thetransactionisinactiveduetoarollbackinasubtransaction

并且,这是正确的代码示例。我从上面的链接中引用了这一点。

try:
    <use session>
    session.commit()
except:
    session.rollback()
    raise
finally:
    session.close()  # optional, depends on use case