首批通过分布式安全可靠测评,为关键业务系统打造
IS_FREE_LOCK
更新时间:2026-07-15 20:42:46
描述
该函数用来检查由字符串 str 命名的锁是否是自由的,即用来检测一个命名锁是否被其他会话持有。
语法
IS_FREE_LOCK('str')
说明
参数解释
str:指定要检查的锁的名称,字符串类型。
返回值
返回 1:表示锁是自由的,即没有会话持有此锁。
返回 0:表示锁已经被某个会话持有,即此锁并不是自由的。
示例
检查名为 my_lock 的锁是否可用。
obclient [(none)]> SELECT IS_FREE_LOCK('my_lock');
返回结果如下:
+-------------------------+
| IS_FREE_LOCK('my_lock') |
+-------------------------+
| 0 |
+-------------------------+
1 row in set
返回结果为 0,表示锁 my_lock 已经被某个会话持有。可以通过执行 IS_USED_LOCK() 来查询占用该锁会话的连接标识符(会话 ID),示例如下:
obclient [(none)]> SELECT IS_USED_LOCK('my_lock');
返回结果如下:
+-------------------------+
| IS_USED_LOCK('my_lock') |
+-------------------------+
| 3221487701 |
+-------------------------+
1 row in set