---
title: "分区策略使用示例 - 开发者中心 ODC V4.2.4 | OceanBase 文档中心"
description: 分区策略使用示例 本文档旨在介绍如何设置分区创建策略和分区删除策略。 设置 OceanBase MySQL 类型的表分区策略 示例：在数据源 mysql424 下数据库 test_424 中，对 order 表设置创建分区策略和删除分区策略。 信息项 示例值 项目名称 odc_4.2.0 所属数据源 mysql424…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lqS5SYzz_YEAAAAAAAAAAAAADiGDAQ/original) 开发者中心 ODCV 4.2.4

# 分区策略使用示例

更新时间：2026-04-13 15:30:52

[编辑](https://github.com/oceanbase/odc-doc/edit/V4.2.4/zh-CN/800.data-Lifecycle-management/300.partition-scheme-management/330.partition-strategy-procedure.md)  

本文档旨在介绍如何设置分区创建策略和分区删除策略。

## 设置 OceanBase MySQL 类型的表分区策略

示例：在数据源 mysql424 下数据库 test_424 中，对 `order` 表设置创建分区策略和删除分区策略。

| 信息项 | 示例值 |
| --- | --- |
| 项目名称 | odc_4.2.0 |
| 所属数据源 | mysql424 |
| 数据库名称 | test_424 |
| 表名称 | order |

1. 在 SQL 窗口中，编辑 SQL 语句以创建表 order。

   ![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/300.partition-scheme/1.1.png)

   ```sql
   CREATE TABLE `order` (
    `time` date NOT NULL,
    `parti_key` int(11),
    `name` varchar(120) DEFAULT NULL
   ) partition by range columns(time, parti_key)
   (partition p2023_01 values less than ('2023-01-01', 20230101),
   partition p2023_02 values less than ('2023-02-01', 20230201))

   ```
 2. 在 SQL 开发窗口的 **工单** 页签中单击 **分区计划** > **新建分区计划**。

   ![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/300.partition-scheme/2.png)
 3. 在 **新建分区计划** 面板中，单击![edit](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/icon/edit.jpg)编辑分区策略。

   ![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/310.set-partition-strategy/2.png)
 4. 在 **分区策略** 面板中，勾选 **分区策略** 项下的 **创建策略**，创建分区策略。

   ![3.2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/310.set-partition-strategy/3.2.png)
 5. 设置将要创建的分区数量。
 6. 创建规则。

   如上图所示，可以对 `order` 表中包含的 `time` 和 `parti_key` 分区键设置分区策略。

      - `time`：该分区键类型为 `DATE`，属于时间类型，因此其可以使用 **顺序递增** 作为分区创建策略。示例中，`time` 分区键的创建策略是以当前时间（即分区计划任务实际运行时的时间）为基准时间，间隔 1 个月生成若干分区。
      - `parti_key`：该分区键类型为 `INT`，不属于时间类型，只能使用 **自定义** 作为分区创建策略。假定需要以当前时间为基准，间隔 1 个月生成若干分区。参照 **自定义分区创建策略** 一节中关于 **自定义分区创建策略** 的表述，该表达式可以按照如下步骤生成：

            1. 获取分区生成的基准时间：由于是以当前时间为基准，可以直接使用 `now()` 函数。
            2. 定义分区生成的间隔：由于示例中是以 1 个月为间隔，因此在 **创建规则** > **细则** > **间隔** 中填入 1 作为固定间隔，且在步骤 1 表达式的基础上增加 interval 表达式，生成下一个分区。即 `now () + interval ${INTERVAL} month`，其中 `${INTERVAL}` 指代 **创建规则** > **细则** > **间隔** 中填入的值。
            3. 生成对应分区键类型的分区表达式：`parti_key` 的类型为 `int`，但步骤 1 中生成的表达式的类型为时间类型，需要将其转换为 `int` 类型。您可以先将其转成数字样式的字符串，再转换为`int` 类型，即：`cast(date_format(now() + interval ${INTERVAL} month, '%Y%m01') as signed)`。

              其中，

                     - `CAST(xxx AS SIGNED)`：将字段转换成整数。
                     - `DATE_FORMAT()`：将字段转换成日期格式。
                     - `NOW()`：返回当前日期。
                     - `INTERVAL ${INTERVAL} MONTH`：按月间隔表达式，**`${INTERVAL}` 为 ODC 定义的时间间隔函数固定用法**。
                     - `'%Y%m01'`：日期格式。
 7. 选择命名方式。

   如上图所示，选择的命名方式为 **前缀+后缀**，该命名方式由一个固定字符串前缀和基于时间的可变后缀构成。

      1. 固定前缀：该前缀可由用户自由指定。
      2. 可变后缀：可选择时间类型的分区键对应的分区上界作为当前分区的命名后缀，另外可选时间的格式化输出格式以及时间的递增间隔。
      3. 配置完成后，单击 **测试生成** 按钮可以查看设置的分区名。
 8. 在 **删除分区** 项下，根据时间间隔设置预创建相应数量的分区，并选择删除后是否重建索引。
 9. 单击 **分区策略** 面板右下角的 **预览 SQL** 查看根据所设置的分区策略生成的 SQL 语句。

   ![4](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/310.set-partition-strategy/4.png)
 10. 单击 **确定**，完成设置分区策略。

## 设置 OceanBase Oracle 类型的表分区策略

示例：在数据源 oboracle_430 下数据库 OBORACLE 中，对 `order` 表设置创建分区策略和删除分区策略。

| 信息项 | 示例值 |
| --- | --- |
| 项目名称 | odc_4.2.0 |
| 所属数据源 | oboracle_430 |
| 数据库名称 | OBORACLE |
| 表名称 | order |

   ![oracle1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/310.set-partition-strategy/oracle1.png)

   ```sql
   CREATE TABLE "OBORACLE"."order" (
   "TIME" DATE NOT NULL ENABLE,
   "KEY" NUMBER(*,0) NOT NULL ENABLE,
   "NAME" VARCHAR2(120) DEFAULT NULL
   ) COMPRESS FOR ARCHIVE REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0
   partition by range("TIME", "KEY")
   (partition "p2024_01" values less than (TO_DATE(' 2024-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'),20240101),
   partition "p2024_02" values less than (TO_DATE(' 2024-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'),20240201));

   ![oracle2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/310.set-partition-strategy/oracle2.png)
 3. 在 **新建分区计划** 面板中，单击![edit](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/icon/edit.jpg)编辑分区策略。

   ![oracle3](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/310.set-partition-strategy/oracle3.png)
 4. 在 **分区策略** 面板中，勾选 **分区策略** 项下的 **创建策略**，创建分区策略。

   ![oracle4](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/310.set-partition-strategy/oracle4.6.png)
 5. 设置将要创建的分区数量。
 6. 创建规则。

   如上图所示，可以对 `order` 表中包含的 `TIME` 和 `KEY` 分区键设置分区策略。

      - `TIME`：该分区键类型为 `DATE`，属于时间类型，因此其可以使用 **顺序递增** 作为分区创建策略。示例中，`TIME` 分区键的创建策略是以当前时间（即分区计划任务实际运行时的时间）为基准时间，间隔 1 个月生成若干分区。
      - `KEY`：该分区键类型为 `NUMBER`，不属于时间类型，只能使用 **自定义** 作为分区创建策略。假定需要以当前系统时间为基准，间隔 1 个月生成若干分区。参照 **自定义分区创建策略** 一节中关于 **自定义分区创建策略** 的表述，该表达式可以按照如下步骤生成：

            1. 获取分区生成的基准时间：由于是以当前系统时间为基准，可以直接使用 `sysdate` 函数。
            2. 定义分区生成的间隔：由于示例中是以 1 个月为间隔，因此在 **创建规则** > **细则** > **间隔** 中填入 `NUMTOYMINTERVAL(1, 'MONTH')` 作为固定间隔，且在步骤 1 表达式的基础上增加 interval 表达式，生成下一个分区。即 `SYSDATE + ${INTERVAL}`，其中 `${INTERVAL}` 指代 **创建规则** > **细则** > **间隔** 中填入的值。
            3. 生成对应分区键类型的分区表达式：`KEY` 的类型为 `NUMBER`，但步骤 1 中生成的表达式的类型为时间类型，需要将其转换为 `NUMBER` 类型。您可以先将其转成数字样式的字符串，再转换为`NUMBER` 类型，即：`TO_CHAR(SYSDATE + ${INTERVAL}, 'YYYYMM"01"')`。

              其中，

                     - `TO_CHAR`：将字段转换成字符型。
                     - `SYSDATE`：返回当前系统时间。
                     - `YYYYMM"01"`：日期格式。
 7. 选择命名方式。

   ![oracle5](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/424/800.data-Lifecycle-management/310.set-partition-strategy/oracle5.0.png)
 10. 单击 **确定**，完成设置分区策略。

## 相关文档

- [管理分区计划](https://www.oceanbase.com/docs/common-odc-1000000000672291)
 - [设置分区策略](https://www.oceanbase.com/docs/common-odc-1000000000672290)

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