pg_advisory_unlock_shared()
是一个系统函数,用于释放先前获取的会话级别 建议锁。
pg_advisory_unlock_shared()
在 PostgreSQL 8.2 中添加。
用法
pg_advisory_unlock_shared (key
bigint
) →boolean
pg_advisory_unlock_shared (key1
integer
,key2
integer
) →boolean
如果指定的锁被成功释放,则返回 true
。
如果该锁不被当前会话持有或不存在,则返回 false
并发出 WARNING
警告。
变更历史
- PostgreSQL 8.2
- 添加于(提交 9b4cda0d)
示例
pg_advisory_unlock_shared()
的基本用法示例
postgres=# SELECT pg_advisory_lock_shared(123); pg_advisory_lock_shared ------------------------- (1 row) postgres=# SELECT locktype, database, objid, objsubid, mode, pid, granted, fastpath FROM pg_locks WHERE locktype = 'advisory'; locktype | database | objid | objsubid | mode | pid | granted | fastpath ----------+----------+-------+----------+-----------+---------+---------+---------- advisory | 5 | 123 | 1 | ShareLock | 3902955 | t | f (1 row) postgres=# SELECT pg_advisory_unlock_shared(123); pg_advisory_unlock_shared --------------------------- t (1 row)
尝试释放不存在或不被当前会话持有的锁
postgres=# SELECT pg_advisory_unlock_shared(456); WARNING: you don't own a lock of type ShareLock pg_advisory_unlock_shared --------------------------- f (1 row)
参考资料
- PostgreSQL 文档: 咨询锁函数