---
title: "管理二级分区表表组 | OceanBase 文档中心"
description: 管理二级分区表表组 创建表组后，您可以将二级分区表加入表组，并对表组进行分区管理操作。 分区操作支持概览 当前版本的 MySQL 模式下，非模板化二级分区表表组的分区管理操作支持情况如下表所示。 添加分区 分区类型 添加一级分区 添加二级分区 Range + Range / Range + Range Columns…
---
切换语言

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

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

# 管理二级分区表表组

更新时间：2023-08-09 14:11:21

创建表组后，您可以将二级分区表加入表组，并对表组进行分区管理操作。

## 分区操作支持概览

当前版本的 MySQL 模式下，非模板化二级分区表表组的分区管理操作支持情况如下表所示。

**添加分区**

| 分区类型 | 添加一级分区 | 添加二级分区 |
| --- | --- | --- |
| Range + Range / Range + Range Columns / Range + List / Range + List Columns / Range + Hash / Range + Key | 支持 | 不支持 |
| Range Columns + Range /Range Columns + Range Columns / Range Columns + List / Range Columns + List Columns / Range Columns + Hash / Range Columns + Key | 支持 | 不支持 |
| List + Range / List + Range Columns / List + List / List + List Columns / List + Hash / List + Key | 支持 | 不支持 |
| List Columns + Range / List Columns + Range Columns / List Columns + List / List Columns + List Columns /List Columns + Hash / List Columns + Key | 支持 | 不支持 |
| Hash + Range / Hash + Range Columns / Hash + List / Hash + List Columns / Hash + Hash / Hash + Key | 不支持 | 不支持 |
| Key + Range / Key + Range Columns / Key + List / Key + List Columns / Key + Hash /Key + Key | 不支持 | 不支持 |

**删除分区**

| 分区类型 | 删除一级分区 | 删除二级分区 |
| --- | --- | --- |
| Range + Range / Range + Range Columns / Range + List / Range + List Columns | 支持 | 支持 |
| Range + Hash / Range + Key | 支持 | 不支持 |
| Range Columns + Range / Range Columns + Range Columns / Range Columns + List / Range Columns + List Columns | 支持 | 支持 |
| Range Columns + Hash / Range Columns + Key | 支持 | 不支持 |
| List + Range / List + Range Columns / List + List / List + List Columns | 支持 | 支持 |
| List + Hash / List + Key | 支持 | 不支持 |
| List Columns + Range / List Columns + Range Columns / List Columns + List / List Columns + List Columns | 支持 | 支持 |
| List Columns + Hash / List Columns + Key | 支持 | 不支持 |
| Hash + Range / Hash + Range Columns / Hash + List / Hash + List Columns / Hash + Hash / Hash + Key | 不支持 | 不支持 |
| Key + Range / Key + Range Columns / Key + List / Key + List Columns / Key + Hash /Key + Key | 不支持 | 不支持 |

## 向表组中添加一级分区

二级分区表加入到表组后，您可以向表组中添加一级分区。操作前请确认当前用户拥有全局 `ALTER` 权限。

SQL 语法如下：

```sql
ALTER TABLEGROUP tablegroup_name ADD PARTITION partition_option;

partition_option:
  {PARTITION partition_name VALUES LESS THAN range_partition_expr (tg_subpartition_option)
     [,PARTITION partition_name VALUES LESS THAN range_partition_expr (tg_subpartition_option)]... }
 |{PARTITION partition_name VALUES IN list_partition_expr (tg_subpartition_option)
     [,PARTITION partition_name VALUES IN list_partition_expr (tg_subpartition_option)]...}

tg_subpartition_option：
  {SUBPARTITION partition_name VALUES LESS THAN range_partition_expr, ...}
 |{SUBPARTITION partition_name VALUES IN list_partition_expr, ....}
 |{SUBPARTITION partition_name, ....}

```

示例：

- 向 Range Columns + Range Columns 分区表的表组中添加一级分区。

  ```sql
  obclient> ALTER TABLEGROUP tg2_rr ADD PARTITION
         (PARTITION p2 VALUES LESS THAN(300)
           (SUBPARTITION sp8 VALUES LESS THAN (2020),
            SUBPARTITION sp9 VALUES LESS THAN (2021)
           )
         );
  Query OK, 0 rows affected

  ```
 - 向 Range Columns + List Columns 分区表的表组中添加一级分区。

  ```sql
  obclient> ALTER TABLEGROUP tg2_rl ADD PARTITION
         (PARTITION p2 VALUES LESS THAN (300)
           (SUBPARTITION sp5 VALUES IN (('US',1),('US',2)),
            SUBPARTITION sp6 VALUES IN (('CN',1),('CN',2))
           )
         );
  Query OK, 0 rows affected

  ```
 - 向 Range Columns + Hash 分区表的表组中添加一级分区。

  ```sql
  obclient> ALTER TABLEGROUP tg2_rh ADD PARTITION
         (PARTITION p3 VALUES LESS THAN (2020)
           (SUBPARTITION s6,
            SUBPARTITION s7
           )
         );
  Query OK, 0 rows affected

  ```
 - 向 Range Columns + Key 分区表的表组中添加一级分区。

  ```sql
  obclient> ALTER TABLEGROUP tg2_rk ADD PARTITION
         (PARTITION p3 VALUES LESS THAN(400)
           (SUBPARTITION sp9,
            SUBPARTITION sp10,
            SUBPARTITION sp11
           )
         );
  Query OK, 0 rows affected

  ```
 - 向 List Columns + Range Columns 分区表的表组中添加一级分区。

  ```sql
  obclient> ALTER TABLEGROUP tg2_lr ADD PARTITION
         (PARTITION p2 VALUES IN('E','F')
           (SUBPARTITION sp8 VALUES LESS THAN(2020),
            SUBPARTITION sp9 VALUES LESS THAN(2021),
            SUBPARTITION sp10 VALUES LESS THAN(2022),
            SUBPARTITION sp11 VALUES LESS THAN(2023)
           )
         );
  Query OK, 0 rows affected

  ```
 - 向 List Columns + List Columns 分区表的表组中添加一级分区。

  ```sql
  obclient> ALTER TABLEGROUP tg1_ll ADD PARTITION
         (PARTITION p2 VALUES IN('H','I')
           (SUBPARTITION sp8 VALUES IN('01','03'),
            SUBPARTITION sp9 VALUES IN('04','06'),
            SUBPARTITION sp10 VALUES IN('07','09')
           )
         );
  Query OK, 0 rows affected

  ```
 - 向 List Columns + Hash 分区表的表组中添加一级分区。

  ```sql
  obclient> ALTER TABLEGROUP tg2_lh ADD PARTITION
         (PARTITION p2 VALUES IN('N','R')
           (SUBPARTITION sp4,
            SUBPARTITION sp5
           )
         );
  Query OK, 0 rows affected

  ```
 - 向 List Columns + Key 分区表的表组中添加一级分区。

  ```sql
  obclient> ALTER TABLEGROUP tg2_lk ADD PARTITION
         (PARTITION p2 VALUES IN('05','06')
           (SUBPARTITION sp6,
            SUBPARTITION sp7
           )
         );
  Query OK, 0 rows affected

  ```

## 向表组中添加二级分区

当前 MySQL 模式暂不支持向表组中添加二级分区。

## 从表组中删除一级分区

二级分区表加入到表组后，您可以删除表组中的一级分区。操作前请确认当前用户拥有全局 `ALTER` 权限。

SQL 语法如下：

```sql
ALTER TABLEGROUP tablegroup_name DROP PARTITION partition_name[,partition_name]...;

```

其中，`tablegroup_name` 表示表组名称；`partition_name` 表示待删除的一级分区的分区名。

示例如下：

```sql
obclient> ALTER TABLEGROUP tblgroup1 DROP PARTITION p2;
Query OK, 0 rows affected

```

## 从表组中删除二级分区

二级分区表加入到表组后，您也可以删除表组中的二级分区。如果一次删除多个二级分区，则多个二级分区需要来自同一个一级分区。操作前请确认当前用户拥有全局 `ALTER` 权限。

SQL 语法如下：

```sql
ALTER TABLEGROUP tablegroup_name DROP SUBPARTITION subpartition_name[,partition_name]...;

```

其中：`tablegroup_name` 表示表组名称，`subpartition_name` 表示待删除的二级分区的分区名。

示例如下：

```sql
obclient>ALTER TABLEGROUP tg1 DROP SUBPARTITION sp2;

```

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