GBase 8c
其他
文章

GBase 8c 咨询锁函数

发表于2023-12-11 09:33:2311次浏览1个评论

咨询锁函数用于管理咨询锁(Advisory Lock)。
 

 

l pg_advisory_lock(key bigint)

描述:获取会话级别的排它咨询锁。

返回值类型:void

备注:pg_advisory_lock锁定应用程序定义的资源,该资源可以用一个64位或两个不重叠的32位键值标识。如果已经有另外的会话锁定了该资源,则该函数将阻塞到该资源可用为止。这个锁是排它的。多个锁定请求将会被压入栈中,因此,如果同一个资源被锁定了三次,它必须被解锁三次以将资源释放给其他会话使用。

l pg_advisory_lock(key1 int, key2 int)

描述:获取会话级别的排它咨询锁。

返回值类型:void

备注:只允许sysadmin对键值对(65535, 65535)加会话级别的排它咨询锁,普通用户无权限。

l pg_advisory_lock(int4, int4, Name)

描述:获取指定数据库的排它咨询锁。

返回值类型:void

l pg_advisory_lock_shared(key bigint)

描述:获取会话级别的共享咨询锁。

返回值类型:void

l pg_advisory_lock_shared(key1 int, key2 int)

描述:获取会话级别的共享咨询锁。

返回值类型:void

备注:pg_advisory_lock_shared类似于pg_advisory_lock,不同之处仅在于共享锁会话可以和其他请求共享锁的会话共享资源,但排它锁除外。

l pg_advisory_unlock(key bigint)

描述:释放会话级别的排它咨询锁。

返回值类型:Boolean

l pg_advisory_unlock(key1 int, key2 int)

描述:释放会话级别的排它咨询锁。

返回值类型:Boolean

备注:pg_advisory_unlock释放先前取得的排它咨询锁。如果释放成功则返回true。如果实际上并未持有指定的锁,将返回false并在服务器中产生一条SQL警告信息。

l pg_advisory_unlock(int4, int4, Name)

描述:释放指定数据库上的排它咨询锁。

返回值类型:Boolean

备注:如果释放成功则返回true;如果未持有锁,则返回false。

评论

登录后才可以发表评论
崔哥发表于 1个月前
泉眼无声惜细流,树阴照水爱晴柔。小荷才露尖尖角,早有蜻蜓立上头。