设置本地状态的文档:
“请注意,如果在BEGIN块之外执行SET LOCAL将无效,因为事务将立即结束。”
如果我在只读事务的上下文中使用SET LOCAL,我是否需要用COMMIT语句指示事务的结束?如果我这样做是否有任何区别?
答案 0 :(得分:3)
如果您的连接在没有COMMIT
的情况下关闭,PostgreSQL将自动发出ROLLBACK
。在只读事务的上下文中,这没有任何后果。
如果您的交易在您的交易后保持打开状态,您可能需要发出ROLLBACK
(或COMMIT
,但通常ROLLBACK
费用较低),以便您进行下一笔交易在干净的状态下执行。