IS_FREE_LOCK()¶
判断指定名称的用户级 advisory 锁当前是否可用。
语法¶
IS_FREE_LOCK(name)
参数¶
参数 |
说明 |
|---|---|
|
要检查的锁名称,不区分大小写。 |
返回值¶
指定锁空闲时返回
1。任意会话持有该锁时返回
0。输入无效或执行出错时返回
NULL。
使用说明¶
该函数只检查状态,不会获取锁;其他会话可能在检查后立即改变锁状态。
源码依据:
test/distributed/cases/function/user_lock.sql。
示例¶
DROP DATABASE IF EXISTS is_free_lock_demo;
CREATE DATABASE is_free_lock_demo;
USE is_free_lock_demo;
SELECT IS_FREE_LOCK('nightly_job') AS initially_free;
SELECT GET_LOCK('nightly_job', 0);
SELECT IS_FREE_LOCK('nightly_job') AS held;
SELECT RELEASE_LOCK('nightly_job');
SELECT IS_FREE_LOCK('nightly_job') AS free_again;
DROP DATABASE is_free_lock_demo;