---
title: "DELETE - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: "DELETE 描述 该语句用于删除表中符合条件的行（数据）。 权限要求 执行 DELETE 语句需要当前用户拥有 DELETE 的系统权限。有关 OceanBase 数据库权限的详细介绍，请参见 Oracle 模式下的权限分类 。 语法 DELETE [hint_options] FROM table_factor …"
---
切换语言

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

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

# DELETE

更新时间：2026-07-15 15:27:39

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/900.sql-statement-of-oracle-mode/200.dml-of-oracle-mode/100.delete-of-oracle-mode.md)  

## 描述

该语句用于删除表中符合条件的行（数据）。

## 权限要求

执行 `DELETE` 语句需要当前用户拥有 `DELETE` 的系统权限。有关 OceanBase 数据库权限的详细介绍，请参见 [Oracle 模式下的权限分类](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685764)。

## 语法

```sql
DELETE [hint_options] FROM table_factor
    [WHERE where_expression]
    [{RETURNING | RETURE } returning_exprs [ into_clause ]]
    [LOG ERRORS [INTO] table_name REJECT LIMIT { integer | UNLIMITED }]

table_factor:
    {table_name | table_subquery | '(' table_reference ')' }

returning_exprs:
    projection_col_name [,projection_col_name ...]

into_clause:
      [BULK COLLECT] INTO into_var_list

into_var_list:
    { USER_VARIABLE | ref_name } [, { USER_VARIABLE | ref_name }...]

```

## 参数解释

| 参数 | 说明 |
| --- | --- |
| `DELETE` | 执行删除操作的关键词。 |
| `hint_options` | 可选的提示选项，用于优化查询的执行计划。 |
| table_factor | 指定需要删除的表名（基表、可更新视图、特殊子查询）。   #### 注意    特殊子查询是指类似于可更新视图对应的子查询，这类子查询不应该包含复杂的算子（例如 `GROUP BY`、`DISTINCT`、`WINDOW FUNCTION` 等）。 |
| `table_name` | 要删除数据的目标表名。 |
| `table_subquery` | 可选的子查询，用于指定要删除的记录来源。 |
| `table_reference` | 表的引用，可以是表名或其他形式的表表达式。 |
| `WHERE where_expression` | 可选的条件，用于指定要删除的记录。 |
| `RETURNING` | 可选的关键词，表示在删除操作后返回指定的列值。 |
| `RETURN` | 与 `RETURNING` 相同，另一种写法。 |
| `returning_exprs` | 要返回的列名列表，可以包含多个列名。 |
| `into_clause` | 可选的语句，用于将返回的值存储到变量中。 |
| `BULK COLLECT` | 指示使用批量收集方式将返回结果存储到变量。 |
| `into_var_list` | 返回值存储的变量列表，可以是用户定义的变量或引用名。 |
| `LOG ERRORS` | 可选的语句，指示在删除过程中记录错误。 |
| `INTO` | 指定记录错误的目标表名。 |
| `REJECT LIMIT` | 指定在错误发生时，允许的最大记录数，可以是整数或无限制。 |

## 示例

创建表 `tbl1` 并插入数据。

```sql
obclient> CREATE TABLE tbl1(col1 INT PRIMARY KEY, col2 INT);
Query OK, 0 rows affected

obclient> INSERT INTO tbl1 VALUES(1,1),(2,2),(3,3),(4,4);
Query OK, 4 rows affected
Records: 4  Duplicates: 0  Warnings: 0

obclient> SELECT * FROM tbl1;
+------+------+
| COL1 | COL2 |
+------+------+
|    1 |    1 |
|    2 |    2 |
|    3 |    3 |
|    4 |    4 |
+------+------+
4 rows in set

```

- 单表删除：删除 `col1=2` 的行，其中 `col1` 列为表 `tbl1` 中的 Primary Key。

  ```sql
  obclient>DELETE FROM tbl1 WHERE col1 = 2;
  Query OK, 1 row affected

  obclient>SELECT * FROM tbl1;
  +----+------+
  | COL1 | COL2 |
  +----+------+
  |  1 |    1 |
  |  3 |    3 |
  |  4 |    4 |
  +----+------+
  3 rows in set

  ```
 - 单表删除：直接操作子查询进去删除操作。

  ```sql
  obclient> DELETE FROM (SELECT * FROM tbl1);
  Query OK, 4 rows affected

  obclient> SELECT * FROM tbl1;
  Empty set

  ```
 - 单表删除：包含 `RETURNING` 子句。

  ```sql
  obclient> DELETE FROM tbl1 RETURNING col1;
  +----+
  | COL1 |
  +----+
  |  1 |
  |  2 |
  |  3 |
  |  4 |
  +----+
  4 rows in set

  obclient>SELECT * FROM t1;
  Empty set

  ```

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