---
title: "分区操作 - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: 分区操作 OceanBase 数据库 Oracle 模式下的分区操作包括重分区（将非分区表转换为一级分区表和二级分区表）、添加分区、删除分区和清空分区。 重分区 重分区的语法如下： ALTER TABLE table_name MODIFY partition_option; 注意 当前版本只支持非分区表转换成分区表…
---
切换语言

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

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

# 分区操作

更新时间：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/300.common-tenant-of-oracle-mode/1000.ddl-function-of-oracle-mode/800.partitioning-operations-of-oracle-mode.md)  

OceanBase 数据库 Oracle 模式下的分区操作包括重分区（将非分区表转换为一级分区表和二级分区表）、添加分区、删除分区和清空分区。

## 重分区

重分区的语法如下：

```sql
ALTER TABLE table_name MODIFY partition_option;

```

#### 注意

当前版本只支持非分区表转换成分区表。

### 重分区示例

#### 将非分区表转换成为一级分区表

```sql
obclient> CREATE TABLE tbl1(c1 INT PRIMARY KEY, c2 DATE);
Query OK, 0 rows affected

obclient> ALTER TABLE tbl1 MODIFY PARTITION BY HASH(c1) PARTITIONS 4;
Query OK, 0 rows affected

```

#### 将非分区表转换成为二级分区表（模版化）

```sql
obclient> CREATE TABLE tbl2(c1 INT, c2 DATE, PRIMARY KEY(c1, c2));
Query OK, 0 rows affected

obclient> ALTER TABLE tbl2 MODIFY PARTITION BY HASH(c1)
                SUBPARTITION BY RANGE (c2)
                SUBPARTITION TEMPLATE(
                SUBPARTITION p1 VALUES LESS THAN (TO_DATE('2016/02/01','YYYY/MM/DD')),
                SUBPARTITION p2 VALUES LESS THAN (TO_DATE('2116/02/01','YYYY/MM/DD'))
                );
Query OK, 0 rows affected

```

#### 将非分区表转换成为二级分区表（非模版化）

```sql
obclient> CREATE TABLE tbl3(c1 INT, c2 DATE, PRIMARY KEY(c1, c2));
Query OK, 0 rows affected

obclient> ALTER TABLE tbl3 MODIFY PARTITION BY RANGE(c1)
            SUBPARTITION BY RANGE(c2) (
                 PARTITION p0 VALUES LESS THAN(0),
                 PARTITION p1 VALUES LESS THAN(100));
Query OK, 0 rows affected

```

## 添加分区

添加分区的语法如下：

```sql
ALTER TABLE table_name ADD PARTITION (partition_definition)

```

如下示例为模板化二级分区表 `tbl4` 添加一级分区 `p3`，只需要指定一级分区的定义，二级分区的定义会自动按照模板填充。

```sql
obclient> CREATE TABLE tbl4(col1 INT, col2 INT, PRIMARY KEY(col1,col2))
       PARTITION BY RANGE(col1)
       SUBPARTITION BY RANGE(col2)
       SUBPARTITION TEMPLATE
       (
       SUBPARTITION p0 VALUES LESS THAN (50),
       SUBPARTITION p1 VALUES LESS THAN (100)
       )
       (
       PARTITION p0 VALUES LESS THAN (100),
       PARTITION p1 VALUES LESS THAN (200),
       PARTITION p2 VALUES LESS THAN (300)
       );
  Query OK, 0 rows affected

  obclient> ALTER TABLE tbl4 ADD PARTITION p3 VALUES LESS THAN (400);
  Query OK, 0 rows affected

```

## 删除分区

删除分区的语法如下：

```sql
ALTER TABLE table_name DROP PARTITION partition_name;

```

删除分区的示例如下：

```sql
obclient> ALTER TABLE tbl4 DROP PARTITION p3;
Query OK, 0 rows affected

```

## 清空分区

清空分区的语法如下:

```sql
ALTER TABLE table_name TRUNCATE PARTITION partition_name;

```

清空分区的示例如下：

```sql
 obclient> ALTER TABLE tbl4 TRUNCATE PARTITION p2;
  Query OK, 0 rows affected

```

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