---
title: OceanBase 数据库 MySQL 模式中 SELECT ... FOR UPDATE LIMIT 1 的加锁行为是怎样的-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库 MySQL 模式中 SELECT ... FOR UPDATE LIMIT 1 的加锁行为是怎样的相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库 MySQL 模式中 SELECT ... FOR UPDATE LIMIT 1 的加锁行为是怎样的的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OceanBase 数据库 MySQL 模式中 SELECT ... FOR UPDATE LIMIT 1 的加锁行为是怎样的

更新时间：2026-08-06 07:36

适用版本： V2.2.x、V3.1.x、V3.2.x 内容类型：TechNote  

本文介绍 SELECT FOR UPDATE 的加锁行为。

## 适用版本

OceanBase 数据库所有版本

## SELECT FOR UPDATE 的加锁行为

OceanBase 数据库 MySQL 模式中，可以通过 `SELECT ... FOR UPDATE` 为表加行级锁。如果使用了 `LIMIT 1`子句，则 OceanBase 数据库会在查询优化中将算子下压到表扫描的步骤中，只为 `LIMIT` 返回的行加锁。

```shell
obclient> SELECT * FROM $table_name LIMIT 1 FOR UPDATE;

```

但是，如果您使用了 `ORDER BY` 子句对查询结果进行排序，则 OceanBase 数据库会先对结果进行排序，然后再执行 `LIMIT 1`，因此这种情况下，会为选择的所有行加锁。

```shell
obclient> SELECT * FROM $table_name ORDER BY $col_name LIMIT 1 FOR UPDATE;

```

Previous

[hash connect by 导致结果集不同](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000247163)

Next

[OceanBase 数据库名不对导致 Outline 不生效](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209989) ![有帮助](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) 咨询热线
