1

设置本地状态的文档:

“请注意,如果在 BEGIN 块之外执行 SET LOCAL,它似乎无效,因为事务将立即结束。”

如果我在只读事务的上下文中使用 SET LOCAL,是否需要使用 COMMIT 语句指示事务的结束?如果我这样做或不这样做有什么区别吗?

4

1 回答 1

3

如果您的连接在没有 . 的情况下关闭COMMIT,PostgreSQL 将自动发出ROLLBACK. 在只读事务的上下文中,这没有任何后果。

如果您的连接在交易后保持打开状态,您可能需要发出 a ROLLBACK(或 a COMMIT,但通常 aROLLBACK成本较低),以便您的下一个交易在干净状态下执行。

于 2009-07-27T02:09:04.313 回答