---
title: "创建二级分区表组 | OceanBase 文档中心"
description: 创建二级分区表组 本节主要介绍如何在 OceanBase 数据库的 MySQL 模式中创建二级分区表表组。 支持的二级分区类型 OceanBase 数据库的 MySQL 模式支持创建模板化和非模板化的二级分区表表组。 分区类型 创建模板化二级分区表组 创建非模板化二级分区表组 Range Columns + Rang…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

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

# 创建二级分区表组

更新时间：2023-08-07 17:31:04

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V3.1.2/zh-CN/600.administrator-guide/500.distributed-storage-management/200.manage-partitions/1200.create-subpartitioned-table-groups.md)  

本节主要介绍如何在 OceanBase 数据库的 MySQL 模式中创建二级分区表表组。

## 支持的二级分区类型

OceanBase 数据库的 MySQL 模式支持创建模板化和非模板化的二级分区表表组。

| 分区类型 | 创建模板化二级分区表组 | 创建非模板化二级分区表组 |
| --- | --- | --- |
| Range Columns + Range Columns | 不支持 | 不支持 |
| Range Columns + List Columns | 支持 | 不支持 |
| Range Columns + Hash | 支持 | 不支持 |
| Range Columns + Key | 支持 | 不支持 |
| List Columns + Range Columns | 支持 | 不支持 |
| List Columns + List Columns | 不支持 | 不支持 |
| List Columns + Hash | 支持 | 不支持 |
| List Columns + Key | 支持 | 不支持 |

## 注意事项

创建表组后，表组内的表不能单独进行分区管理操作，只能通过表组对分区表进行分区的统一管理。

## 创建二级分区表组语法

### 创建模板化二级分区表表组的 SQL 语法

```sql
CREATE TABLEGROUP [IF NOT EXISTS] tablegroupname [opt_tablegroup_option_list] [opt_tg_partition_option]

opt_tablegroup_option_list:
tablegroup_option [tablegroup_option]

tablegroup_option:
      LOCALITY [=] locality_name
    | PRIMARY_ZONE [=] primary_zone_name

opt_tg_partition_option:
    PARTITION BY
      KEY column_num [tg_subpartition_option] PARTITIONS int_num
    | HASH [tg_subpartition_option] PARTITIONS INTNUM
    | RANGE COLUMNS column_num [tg_subpartition_option]
          {PARTITION partition_name VALUES LESS THAN range_partition_expr, ...}
    | LIST COLUMNS column_num [tg_subpartition_option]
          {PARTITION partition_name VALUES IN list_partition_expr, ...}

tg_subpartition_option:
SUBPARTITION BY
     RANGE COLUMNS column_num SUBPARTITION TEMPLATE
          {SUBPARTITION partition_name VALUES LESS THAN range_partition_expr, ...}
    | HASH SUBPARTITIONS INTNUM
    | KEY column_num SUBPARTITIONS INTNUM
    | LIST COLUMNS column_num SUBPARTITION TEMPLATE
          {SUBPARTITION partition_name VALUES IN list_partition_expr, ...}

```

### 语句说明

- `opt_tablegroup_option_list`：定义表组的分区方式。要求表组的 Locality 和 Primary Zone 信息必须与表组内的表完全一致。表组的 Locality 包括副本类型、个数和位置，Primary Zone 包括 Leader 位置和优先级，以上信息均要与表组内表信息完全一致。
 - `opt_tg_partition_option`：定义表组的分区规则。表组的分区规则需要与表组内的表使用相同的分区类型和分区个数。

  由于表组没有具体的列定义，故不需要写出具体的列，只需要指定列个数（`column_num`）即可。

## 示例

### 创建模板化二级分区表组

- 创建模板化 Range Columns + List Columns 分区表表组。

  ```sql
  obclient> CREATE TABLEGROUP tg2_m_rclc
         PARTITION BY RANGE COLUMNS 1
         SUBPARTITION BY LIST COLUMNS 1
         SUBPARTITION TEMPLATE
         (SUBPARTITION mp0 VALUES IN('A','B'),
          SUBPARTITION mp1 VALUES IN('C','D'),
          SUBPARTITION mp2 VALUES IN('E','F')
         )
         (PARTITION p0 VALUES LESS THAN(100),
          PARTITION p1 VALUES LESS THAN(200),
          PARTITION p2 VALUES LESS THAN(300)
         );
  Query OK, 0 rows affected

  ```
 - 创建模板化 Range Columns + Hash 分区表表组。

  ```sql
  obclient> CREATE TABLEGROUP tg2_m_rch
         PARTITION BY RANGE COLUMNS 1
         SUBPARTITION BY HASH SUBPARTITIONS 5
         (PARTITION p0 VALUES LESS THAN(100),
          PARTITION p1 VALUES LESS THAN(200),
          PARTITION p2 VALUES LESS THAN(300)
         );
  Query OK, 0 rows affected

  ```
 - 创建模板化 Range Columns + Key 分区表表组。

  ```sql
  obclient> CREATE TABLEGROUP tg2_m_rck
         PARTITION BY RANGE COLUMNS 1
         SUBPARTITION BY KEY 1 SUBPARTITIONS 3
         (PARTITION p0 VALUES LESS THAN(100),
          PARTITION p1 VALUES LESS THAN(200),
          PARTITION p2 VALUES LESS THAN(300)
         );
  Query OK, 0 rows affected

  ```
 - 创建模板化 List Columns + Range Columns 分区表表组。

  ```sql
  obclient> CREATE TABLEGROUP tg2_m_lcrc
         PARTITION BY LIST COLUMNS 1
         SUBPARTITION BY RANGE COLUMNS 1
         SUBPARTITION TEMPLATE
         (SUBPARTITION mp0 VALUES LESS THAN(100),
          SUBPARTITION mp1 VALUES LESS THAN(200),
          SUBPARTITION mp2 VALUES LESS THAN(300)
         )
         (PARTITION p0 VALUES IN('A','B'),
          PARTITION p1 VALUES IN('C','D'),
          PARTITION p2 VALUES IN('E','F')
         );
  Query OK, 0 rows affected

  ```
 - 创建模板化 List Columns + Hash 分区表表组。

  ```sql
  obclient> CREATE TABLEGROUP tg2_m_lch
         PARTITION BY LIST COLUMNS 1
         SUBPARTITION BY HASH SUBPARTITIONS 5
         (PARTITION p0 VALUES IN('01','02'),
          PARTITION p1 VALUES IN('03','04'),
          PARTITION p2 VALUES IN('05','06')
         );
  Query OK, 0 rows affected

  ```
 - 创建模板化 List Columns + Key 分区表表组。

  ```sql
  obclient> CREATE TABLEGROUP tg2_m_lck
         PARTITION BY LIST COLUMNS 1
         SUBPARTITION BY KEY 1 SUBPARTITIONS 5
         (PARTITION p0 VALUES IN('01','02'),
          PARTITION p1 VALUES IN('03','04'),
          PARTITION p2 VALUES IN('05','06')
         );
  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) 咨询热线
