pg_advisory_unlock_shared() 是一个系统函数,用于释放先前获取的会话级别 建议锁。
pg_advisory_unlock_shared() 在 PostgreSQL 8.2 中添加。
用法
pg_advisory_unlock_shared (keybigint) →boolean
pg_advisory_unlock_shared (key1integer,key2integer) →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 文档: 咨询锁函数
