对于熟悉 Postgresql 的人来说,这应该很简单:
我的应用程序发出一个begin_work
,进行一些操作,然后发出commit
。操作和提交被包装在一个 try-catch 块中,该块的 catch 语句执行rollback
。假设:如果在SQL操作过程中出现错误,Postgresql会自动回滚事务,因此我的回滚将是多余的but无害。这个假设正确吗?
(无论如何我要回滚的原因是:以防万一发生与 SQL 操作无关的异常。)
如果发生错误,PostgreSQL 实际上不会回滚事务。它会导致所有后续语句失败并出现错误。您可以在客户端中尝试一下。
任何语句执行成功之前都需要执行回滚。
如果您关闭连接并启动新连接,则影响不大。但是,如果保留连接并运行其他希望成功执行的语句,则它将不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)