---
title: "IS_FREE_LOCK - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: "IS_FREE_LOCK 描述 该函数用来检查由字符串 str 命名的锁是否是自由的，即用来检测一个命名锁是否被其他会话持有。 语法 IS_FREE_LOCK(&#x27;str&#x27;) 说明 参数解释 str ：指定要检查的锁的名称，字符串类型。 返回值 返回 1：表示锁是自由的，即没有会话持有此锁。 返回 0：表示锁已经被某个…"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.5 LTS

# IS_FREE_LOCK

更新时间：2026-07-15 20:42:46

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.5/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/400.functions-of-mysql-mode/920.lock-functions-of-mysql-mode/300.is-free-lock-of-mysql-mode.md)  

## 描述

该函数用来检查由字符串 `str` 命名的锁是否是自由的，即用来检测一个命名锁是否被其他会话持有。

## 语法

```sql
IS_FREE_LOCK('str')

```

## 说明

### 参数解释

`str`：指定要检查的锁的名称，字符串类型。

### 返回值

- 返回 1：表示锁是自由的，即没有会话持有此锁。
 - 返回 0：表示锁已经被某个会话持有，即此锁并不是自由的。

## 示例

检查名为 `my_lock` 的锁是否可用。

```shell
obclient [(none)]> SELECT IS_FREE_LOCK('my_lock');

```

返回结果如下：

```shell
+-------------------------+
| IS_FREE_LOCK('my_lock') |
+-------------------------+
|                       0 |
+-------------------------+
1 row in set

```

返回结果为 0，表示锁 `my_lock` 已经被某个会话持有。可以通过执行 `IS_USED_LOCK()` 来查询占用该锁会话的连接标识符（会话 ID），示例如下：

```shell
obclient [(none)]> SELECT IS_USED_LOCK('my_lock');

```

返回结果如下：

```shell
+-------------------------+
| IS_USED_LOCK('my_lock') |
+-------------------------+
|              3221487701 |
+-------------------------+
1 row in set

```

## 相关文档

[IS_USED_LOCK](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002017669)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
