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()
在事务外执行无效。
变更历史
- PostgreSQL 9.1
- 添加(提交 62c7bd31)
示例
对 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)
请注意,如果另一个会话也持有共享锁,则此锁请求将成功。
参考资料
- PostgreSQL 文档: 咨询锁函数