---
title: "修改动态分区表 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 修改动态分区表 OceanBase 数据库可以通过修改 DYNAMIC_PARTITION_POLICY 块，修改表的动态分区管理属性。 本文将向您介绍如何使用 SQL 语句修改动态分区表。 使用限制及注意事项 修改动态分区管理参数后，预创建分区和删除过期分区不会立刻生效，需要等待下一次动态分区管理任务自动调度，或者…
---
切换语言

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

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

# 修改动态分区表

更新时间：2026-06-26 15:45:26

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/300.database-object-management/200.manage-object-of-oracle-mode/200.manage-partitions-of-oracle-mode/260.dynamic-partition-of-oracle-mode/400.modify-dynamic-partition-table-of-oracle-mode.md)  

OceanBase 数据库可以通过修改 `DYNAMIC_PARTITION_POLICY` 块，修改表的动态分区管理属性。

本文将向您介绍如何使用 SQL 语句修改动态分区表。

## 使用限制及注意事项

修改动态分区管理参数后，预创建分区和删除过期分区不会立刻生效，需要等待下一次动态分区管理任务自动调度，或者手动调度一次动态分区管理任务。调度动态分区管理任务的详细介绍，参见 [动态分区管理任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685845)。

## 权限要求

修改动态分区表需要有 `ALTER` 权限。更多有关 OceanBase 数据库权限的详细介绍，参见 [Oracle 模式下的权限分类](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685764)。

## 语法

创建动态分区表的 SQL 语句格式如下：

```sql
ALTER TABLE table_name [SET] DYNAMIC_PARTITION_POLICY [=] (dynamic_partition_policy_list);

dynamic_partition_policy_list:
    dynamic_partition_policy_option [, dynamic_partition_policy_option ...]

dynamic_partition_policy_option:
    ENABLE = {true | false}
    | PRECREATE_TIME = {'-1' | '0' | 'n {hour | day | week | month | year}'}
    | EXPIRE_TIME = {'-1' | '0' | 'n {hour | day | week | month | year}'}

```

## 动态分区管理属性参数说明

| **属性名称** | **描述** | **是否必填** | **是否可修改** |
| --- | --- | --- | --- |
| ENABLE | 表示是否启用动态分区管理。取值如下：   - `true`：默认值，表示启用动态分区管理。 - `false`：表示禁用动态分区管理。 | 否 | 是 |
| PRECREATE_TIME | 表示预创建时间。调度一次动态分区管理，会预创建分区使得 **最大分区上界 > now() + precreate_time**。取值如下：   - `-1`：默认值，表示不预创建分区。 - `0`：表示仅预创建当前分区。 - `n {hour \\| day \\| week \\| month \\| year}`：表示预创建对应时间跨度的分区。例如，`3 hour` 表示预创建 3 小时内的分区。    #### 说明    - 需要预创建多个分区时，分区边界的间隔为 `TIME_UNIT`。 - 首个预创建的分区边界为现存最大分区边界按 `TIME_UNIT` 向上取整。 | 否 | 是 |
| EXPIRE_TIME | 表示分区过期时间。调度一次动态分区管理，会删除所有 **分区上界 < now() - expire_time** 的过期分区。取值如下：   - `-1`：默认值，表示分区永不过期。 - `0`：表示除当前分区外，之前的所有分区均过期。 - `n {hour \\| day \\| week \\| month \\| year}`：表示分区过期时间。例如，`1 day` 表示分区过期时间为 1 天。 | 否 | 是 |

更多有关修改表语法的详细参数说明信息，参见 [ALTER TABLE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687569)。

## 示例

1. 查看表 `test_tbl1` 的动态分区信息。

   ```sql
   SELECT * FROM sys.DBA_OB_DYNAMIC_PARTITION_TABLES
   WHERE TABLE_NAME = 'TEST_TBL1';

   ```

   查询结果如下：

   ```shell
   +---------------+------------+----------+----------------------------------------+--------+-----------+----------------+-------------+-----------+------------------+
   | DATABASE_NAME | TABLE_NAME | TABLE_ID | MAX_HIGH_BOUND_VAL                     | ENABLE | TIME_UNIT | PRECREATE_TIME | EXPIRE_TIME | TIME_ZONE | BIGINT_PRECISION |
   +---------------+------------+----------+----------------------------------------+--------+-----------+----------------+-------------+-----------+------------------+
   | SYS           | TEST_TBL1  |   507940 | Timestamp '2024-11-11 13:30:00.000000' | TRUE   | HOUR      | 3HOUR          | 1DAY        | +8:00     | NONE             |
   +---------------+------------+----------+----------------------------------------+--------+-----------+----------------+-------------+-----------+------------------+
   1 row in set

   ```
 2. 修改动态分区表 `test_tbl1`，设置动态分区属性为：

      - 预创建当前时间之后的 1 天内的分区。
      - 分区永不过期。

   ```sql
   ALTER TABLE test_tbl1 DYNAMIC_PARTITION_POLICY(
       ENABLE = true,
       PRECREATE_TIME = '1 day',
       EXPIRE_TIME = '-1'
   );

   ```
 3. 再次查看表 `test_tbl1` 的动态分区信息。

   ```

   查询结果如下：

   ```shell
   +---------------+------------+----------+----------------------------------------+--------+-----------+----------------+-------------+-----------+------------------+
   | DATABASE_NAME | TABLE_NAME | TABLE_ID | MAX_HIGH_BOUND_VAL                     | ENABLE | TIME_UNIT | PRECREATE_TIME | EXPIRE_TIME | TIME_ZONE | BIGINT_PRECISION |
   +---------------+------------+----------+----------------------------------------+--------+-----------+----------------+-------------+-----------+------------------+
   | SYS           | TEST_TBL1  |   507940 | Timestamp '2024-11-11 13:30:00.000000' | TRUE   | HOUR      | 1DAY           | -1          | +8:00     | NONE             |
   +---------------+------------+----------+----------------------------------------+--------+-----------+----------------+-------------+-----------+------------------+
   1 row in set

   ```

   #### 说明

   修改动态分区管理参数后，预创建分区和删除过期分区不会立刻生效，需要等待下一次动态分区管理任务自动调度，或者手动调度一次动态分区管理任务。详细介绍，参见 [动态分区管理任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685845)。

## 相关文档

- [动态分区概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685846)
 - [创建动态分区表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685844)
 - [查看动态分区表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685848)
 - [动态分区管理任务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685845)

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