我在我的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