---
title: github-fill
description: 锁表 表锁是最基本的锁定策略，它锁定整张表，在任意时刻只允许一个会话对该表进行读写操作。 您可以通过 LOCK TABLES 语句锁定表。 背景信息 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时，在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据，破坏…
---
切换语言

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

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

# 锁表

更新时间：2023-08-01 11:45:47

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.1.0/zh-CN/700.reference/200.administrator-guide/300.database-object-management/200.manage-object-of-oracle-mode/100.manage-tables-of-oracle-mode/900.lock-a-table-of-oracle-mode.md)  

表锁是最基本的锁定策略，它锁定整张表，在任意时刻只允许一个会话对该表进行读写操作。

您可以通过 `LOCK TABLES` 语句锁定表。

## 背景信息

数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时，在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据，破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。为了确保资源的安全性（也就是数据完整性和一致性）才引申出锁机制。利用其锁机制来实现事务间的数据并发访问及数据一致性。

## 前提条件

要锁定的表必须在用户自己的 Schema 中，或者用户必须具有 `LOCK ANY TABLE` 系统权限。

## 示例

以 `EXCLUSIVE` 模式锁定 tbl1 表。

```
```sql
obclient> LOCK TABLE tbl1 IN EXCLUSIVE MODE NOWAIT;
Query OK, 0 row affected
```

```

OceanBase 数据库当前版本所支持的锁定模式如下：

- ROW SHARE：允许并发访问锁定的表，禁止其他用户锁定整个表而进行独占访问，即禁止其他用户对表上 `EXCLUSIVE` 锁。
 - ROW EXCLUSIVE ：禁止其他用户在 `SHARE` 及以上（即 `SHARE`, `ROW SHARE EXCLUSIVE` 和 `EXCLUSIVE`）的模式锁定表。在进行更新、插入、删除或进行 `SELECT FOR UPDATE` 操作时，将自动获得 `ROW EXCLUSIVE` 锁。
 - SHARE：允许并发查询，但禁止更新锁定的表。SHARE 锁既会阻止对表内行的更新（`UPDATE`, `DELETE` 和 `INSERT`）以及 `SELECT FOR UPDATE` 操作，也会阻止对表进行更高级别的锁定，即禁止其他用户对表上 `SHARE ROW EXCLUSIVE` 和 `EXCLUSIVE` 锁。
 - SHARE ROW EXCLUSIVE：允许其他用户查看表中的行，但禁止其更新行（`UPDATE`, `DELETE` 和 `INSERT`）及使用 `SELECT FOR UPDATE` 查询表中的行，且禁止对表上非 `ROW SHARE` 模式的锁。
 - EXCLUSIVE：只允许其他用户对锁定的表进行查询，禁止其他用户在表上执行任何类型的 DML 语句或对表上任何类型的锁。

各个模式下的锁冲突关系如下表所示：

| 请求锁模式 | 当前锁模式 |
| ROW SHARE | ROW EXCLUSIVE | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE |
| ROW SHARE |  |  |  |  | x |
| ROW EXCLUSIVE |  |  | x | x | x |
| SHARE |  | x |  | x | x |
| SHARE ROW EXCLUSIVE |  | x | x | x | x |
| EXCLUSIVE | x | x | x | x | x |

更多 `LOCK TABLES` 语句的介绍，请参见 [LOCK TABLES](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001702701)。

 上一篇 下一篇 ![有帮助](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) 咨询热线
