---
title: 编组
description: 创建一级分区表表组 本节主要介绍如何在 OceanBase 数据库的 MySQL 模式中创建一级分区表表组。 注意事项 创建表组需要当前用户具有全局 CREATE 权限。 创建分区表表组前，需要指定表组的分区策略，表组的分区策略需要与待加入表组的分区表的分区策略一致。 创建分区表表组后，表组内的表不能单独进行分区管理…
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.2.3 企业版 LTS

# 创建一级分区表表组

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

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

## 注意事项

- 创建表组需要当前用户具有全局 `CREATE` 权限。
 - 创建分区表表组前，需要指定表组的分区策略，表组的分区策略需要与待加入表组的分区表的分区策略一致。
 - 创建分区表表组后，表组内的表不能单独进行分区管理操作，只能通过表组对分区表进行分区的统一管理。

## 创建表组

当前支持创建基于 Range Columns 分区、List Columns 分区、Hash 分区和 Key 分区的表组。仅具备租户管理员权限的用户才能创建表组。

创建一级分区表表组的 SQL 语句如下：

```sql
CREATE TABLEGROUP tablegroup_name
                  [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  PARTITIONS INTNUM
| HASH PARTITIONS INTNUM
| RANGE [COLUMNS column_num] {PARTITION partition_name VALUES LESS THAN range_partition_expr, ...}
| LIST [COLUMNS column_num] {PARTITION partition_name VALUES IN list_partition_expr, ...}

```

语句说明：

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

  对于 Range Columns、List Columns 和 Key 分区，创建表组时，必须指定列个数（`COLUMN_NUM`）。

  分区方式主要表现在以下几点：

     - 分区类型相同。例如，要求表组与表都是 Range Columns 分区。
     - 如果是 Range Columns分区，则要求引用的列数相同和分区数相同，且 Range 分割点相同（各 value 的规则相同）。

## 示例

- 创建 Range Columns 分区的表组。

  ```sql
  obclient> CREATE TABLEGROUP tblgroup1 PARTITION BY RANGE COLUMNS 1
              ( PARTITION p0 VALUES LESS THAN(100),
                PARTITION p1 VALUES LESS THAN(200)
               );
  Query OK, 0 rows affected

  ```
 - 创建 List Columns 分区的表组。

  ```sql
  obclient> CREATE TABLEGROUP tblgroup1 PARTITION BY LIST COLUMNS 1
              ( PARTITION p_northwest VALUES IN('OR', 'WA'),
                PARTITION p_southwest VALUES IN('AZ', 'UT', 'NM')
              );
  Query OK, 0 rows affected

  ```
 - 创建 Hash 分区的表组。

  ```sql
  obclient> CREATE TABLEGROUP tg1_h PARTITION BY HASH PARTITIONS 10;
  Query OK, 0 rows affected

  ```
 - 创建 Key 分区的表组。

  ```sql
  obclient> CREATE TABLEGROUP tblgroup1 PARTITION BY KEY 1 PARTITIONS 10;
  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) 咨询热线
