pg_try_advisory_xact_lock_shared()

用于尝试获取事务级共享推荐锁的函数

pg_try_advisory_xact_lock_shared() 是一个系统函数,用于尝试获取事务级 推荐锁。如果无法获取锁,该函数会立即返回。

pg_try_advisory_xact_lock_shared() 函数在 PostgreSQL 9.1 中添加。

用法

pg_try_advisory_xact_lock_shared ( key bigint ) → void
pg_try_advisory_xact_lock_shared ( key1 integer, key2 integer ) → void

如果成功获取锁,则返回 true,否则返回 false

pg_advisory_xact_lock_shared() 不同,pg_try_advisory_lock_shared() 会立即返回,而不会等待锁变得可用。

获取的锁在事务结束时释放。pg_try_advisory_xact_lock_shared() 在事务外执行无效。

变更历史

示例

pg_try_advisory_xact_lock_shared() 的基本用法示例

postgres=# BEGIN;
BEGIN
postgres=*# SELECT pg_try_advisory_xact_lock_shared(123);
 pg_try_advisory_xact_lock_shared
----------------------------------
 t
(1 row)

在另一个会话持有所需锁时执行 pg_try_advisory_xact_lock_shared()

postgres=# BEGIN;
BEGIN
postgres=*# SELECT pg_try_advisory_xact_lock_shared(123);
 pg_try_advisory_xact_lock_shared
----------------------------------
 f
(1 row)

请注意,如果另一个会话也持有共享锁,则此锁请求将成功。

分类

锁定, 系统函数

另请参阅

pg_advisory_xact_lock_shared(), pg_advisory_xact_lock(), 推荐锁

反馈

请在此处提交关于“pg_try_advisory_xact_lock_shared()”的任何评论、建议或更正 here