事务中出错后回滚

对于那些熟悉Postgresql的人来说,这应该是一件容易的事情:

我的应用程序发出begin_work ,执行一些操作,然后发出commit 。 操作和提交包装在一个try-catch块中,它的catch语句执行rollback 。 假设:如果在SQL操作期间发生错误,Postgresql将自动回滚事务,因此我的回滚将是多余的, 无害。 这个假设是否正确?

(无论如何我都是回滚的原因:以防与SQL操作无关的异常出现。)


如果发生错误,PostgreSQL实际上不会回滚事务。 它会在每个随后的语句中出错并且失败。 你可以在客户端试试这个。

在任何语句可以成功执行之前,您需要执行回滚。

在关闭连接并启动新连接的情况下,这没有什么意义。 但是,如果您保留该连接并运行您希望成功执行的其他语句,则该语句无效。

链接地址: http://www.djcxy.com/p/70635.html

上一篇: Rollback after error in transaction

下一篇: Externally triggering FullCalendar's 'dayClick' method?