---
title: "清空表 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 清空表 当表中的数据不再使用时，可以删除表中的所有数据，即清空该表。 OceanBase 数据库支持使用 TRUNCATE TABLE 和 DELETE FROM 语句清空指定表，但是保留表结构，包括表中定义的分区信息。从逻辑上说， TRUNCATE TABLE 语句与用于删除所有行的 DELETE FROM 语句的…
---
切换语言

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

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

# 清空表

更新时间：2026-04-07 09:35:16

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

当表中的数据不再使用时，可以删除表中的所有数据，即清空该表。

OceanBase 数据库支持使用 `TRUNCATE TABLE` 和 `DELETE FROM` 语句清空指定表，但是保留表结构，包括表中定义的分区信息。从逻辑上说，`TRUNCATE TABLE` 语句与用于删除所有行的 `DELETE FROM` 语句的执行结果相同。

## 使用 TRUNCATE TABLE 语句

`TRUNCATE TABLE` 语句提供了一种快速、有效删除表中所有行的方法，同时 `TRUNCATE TABLE` 语句是一个 DDL 语句，不会产生任何回滚信息。

执行 `TRUNCATE TABLE` 语句需要具备该表的删除和创建权限。查看权限和授予权限的相关操作请参见 [直接授予权限](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479231)。

```sql
obclient>TRUNCATE TABLE table_name;

```

## 使用 DELETE FROM 语句

也可以使用 `DELETE FROM` 语句删除表中的行。同时 `delete` 是 DML 语句，可回滚。

示例如下：

```sql
obclient>DELETE FROM table_name;

```

使用 `DELETE FROM` 语句清空表时，如果表有很多行，会消耗较多系统资源。

## TRUNCATE TABLE 语句与 DELETE FROM语句的差异

`TRUNCATE TABLE` 语句与 `DELETE FROM` 语句的差异如下：

- `TRUNCATE TABLE` 语句的执行结果显示影响行数始终为 0 行。
 - 使用 `TRUNCATE TABLE` 语句时，表管理程序不会记录最后被使用的 `AUTO_INCREMENT` 值，但是会从头开始计数。
 - 不支持在进行事务处理和表锁定的过程中执行 `TRUNCATE TABLE` 操作。
 - 只要表定义文件合法，就可以使用 `TRUNCATE TABLE` 语句将表重新创建为一个空表，即使数据或索引文件已经被破坏。

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