交易出错后的回滚[英] Rollback after error in transaction

本文是小编为大家收集整理的关于交易出错后的回滚的处理方法,想解了交易出错后的回滚的问题怎么解决?交易出错后的回滚问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

这对于熟悉 Postgresql 的人来说应该很容易:

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

(我无论如何都要回滚的原因:以防发生与 SQL 操作无关的异常.)

推荐答案

如果发生错误,PostgreSQL 并不会真正回滚事务.它使每个后续语句都失败并出现错误.你可以在客户端试试这个.

您需要执行回滚才能成功执行任何语句.

如果您关闭连接并开始一个新连接,这没什么影响.但是,如果您保留连接并运行您希望成功执行的其他语句,它将不起作用.

本文地址:https://www.itbaoku.cn/post/1763841.html