【问题标题】:Manually Release Postgres LOCK手动释放 Postgres LOCK
【发布时间】:2014-02-13 18:46:19
【问题描述】:

我想知道是否有任何命令可以解锁或释放同一事务的锁。

伪代码

FUNCTION
    TRANSACTION
        LOOP
            TABLE LOCK
            table operations...
            "TABLE UNLOCK WANTED"
        END
    END OF TRANSACTION
END OF FUNCTION

函数查询可能需要一段时间,因为 LOOP 可能很大,所以我希望能够在事务完全完成之前解锁。

【问题讨论】:

    标签: postgresql transactions locking


    【解决方案1】:

    不,这是不可能的。锁一直持有到交易结束,没有例外。

    因此,您需要:

    • 使用非标准的锁,如咨询锁,需要每个人都检查并尊重它;或

    • 在外部事务完成之前,在自动提交的事务中完成工作。在 PostgreSQL 中,缺乏自治子事务支持意味着您必须为此使用 dblink。

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多