SQLAlchemy嵌套回滚错误

fbe*_*sho 30 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.
Run Code Online (Sandbox Code Playgroud)

我想知道问题是什么,它为什么会发生,我该如何解决它.

我不知道nested rollback.有没有简单的例子nested rollback?


编辑:问题解决了.在这种情况下,重点是在我们显式调用rollback之前不会执行回滚,因此当我们包含时nested rollback,我们应该在try语句中编写它,并nested rollback在http:// www中写入异常语句(在大多数情况下).sqlalchemy.org/TRAC /维基/ FAQ#Thetransactionisinactiveduetoarollbackinasubtransaction

而且,这是正确的代码示例.我从上面的链接中引用了这个.

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.
Run Code Online (Sandbox Code Playgroud)

fbe*_*sho 6

问题解决了。在这种情况下,要点是直到明确调用回滚才执行回滚,因此,当包含include时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
Run Code Online (Sandbox Code Playgroud)