---
title: "将一级分区表加入表组 | OceanBase 文档中心"
description: 将一级分区表加入表组 创建一级分区表表组后，您可以将一级分区表加入到表组。 OceanBase 数据库的 MySQL 模式当前支持通过以下两种方式将表添加到分区表表组： 创建表时直接指定表组 创建表后再将表加入表组 注意事项 将一级分区表添加到分区表表组前，需要注意以下事项： 如果要将一张分区表加入到已存在的分区表表…
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 模式当前支持通过以下两种方式将表添加到分区表表组：

- 创建表时直接指定表组
 - 创建表后再将表加入表组

## 注意事项

将一级分区表添加到分区表表组前，需要注意以下事项：

- 如果要将一张分区表加入到已存在的分区表表组，则需要保证该分区表的分区类型及分区个数均与表组完全一致。

  如果表或表组指定了 Locality 和 Primary Zone 信息，则其 Locality 和 Primary Zone 信息也必须完全一致。

## 创建表时直接指定表组

您可以通过 `CREATE TABLE` 语句在创建表时将表添加至表组。使用该方式将表加入表组时，需要确保当前用户拥有表的 `CREATE` 权限。

示例：

1. 创建 Range Columns 分区的表组 `tg1_rc`。

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

   ```
 2. 创建 Range Columns 分区的表，并将表加入到表组 `tg1_rc` 中。

   ```sql
   obclient> CREATE TABLE t1_rc (id INT NOT NULL,name varchar(50),t_date date NOT NULL)
               TABLEGROUP =tg1_rc
               PARTITION BY RANGE COLUMNS(id)
               ( PARTITION p0 VALUES LESS THAN(100),
                 PARTITION p1 VALUES LESS THAN(200),
                 PARTITION p2 VALUES LESS THAN(300)
               );
   Query OK, 0 rows affected

   ```

## 创建表后再将表加入表组

创建表之后，您可以通过 `ALTER TABLEGROUP` 或 `ALTER TABLE` 语句将表加入已存在的表组。

SQL 语法如下：

- `ALTER TABLEGROUP` 语句

  ```sql
  ALTER TABLEGROUP tablegroup_name ADD [TABLE] table_name;

  ```

  其中，`table_name` 表示待加入表组的表名，如果需要加入多个表，表名之间使用英文逗号（,）分隔。使用该语句将表加入表组时，需要确保当前用户拥有全局 `ALTER` 权限。
 - `ALTER TABLE` 语句

  ```sql
  ALTER TABLE table_name SET TABLEGROUP tablegroup_name;

  ```

  使用该语句将表加入表组时，需要确保当前用户拥有目标表的 `ALTER` 权限。

示例：

1. 创建 List Columns 分区的表组 `tg1_lc`。

   ```sql
   obclient> CREATE TABLEGROUP tg1_lc PARTITION BY LIST COLUMNS 1
               ( PARTITION p0 VALUES IN(1,2),
                 PARTITION p1 VALUES IN(3,4),
                 PARTITION p2 VALUES IN(5,6)
               );
   Query OK, 0 rows affected

   ```
 2. 创建 List Columns 分区的表 `t1_lc`。

   ```sql
   obclient> CREATE TABLE t1_lc (id INT NOT NULL,name varchar(50),t_date date NOT NULL)
               PARTITION BY LIST COLUMNS(id)
               ( PARTITION p0 VALUES IN(1,2),
                 PARTITION p1 VALUES IN(3,4),
                 PARTITION p2 VALUES IN(5,6)
               );
   Query OK, 0 rows affected

   ```
 3. 将表添加至表组。

   ```sql
   obclient> ALTER TABLEGROUP tg1_lc ADD TABLE t1_lc;
   Query OK, 0 rows affected

   ```

   或者

   ```sql
   obclient> ALTER TABLE t1_lc SET TABLEGROUP tg1_lc;
   Query OK, 0 rows affected

   ```

将一级分区表加入表组后，您还可以执行将一级分区表从表组中移出、将一级分区表迁移到其他表组以及删除表组等操作，这些操作与普通表组相同，具体操作请参见 [表组管理命令](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000355487)。

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