IS_FREE_LOCK()

判断指定名称的用户级 advisory 锁当前是否可用。

语法

IS_FREE_LOCK(name)

参数

参数

说明

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;

另请参阅