通过SET INTERVAL可以修改INTERVAL RANGE分区的INTERVAL类型和数值。

前提条件

集群版本需为PolarDB MySQL引擎8.0.2版本且Revision version为8.0.2.2.1及以上。您可以通过查询版本号确认集群版本。

语法

ALTER TABLE table_name SET { INTERVAL(type, expr) | INTERVAL(expr) };

参数

参数 参数说明
table_name 要修改的表名称。
INTERVAL(type) 目前支持8种时间类型(YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND),不显式指定默认是数字类型的间隔。
INTERVAL(expr) 指定间隔的数值大小。当type为SECOND类型时,间隔不能小于60。

示例

修改orders表INTERVAL RANGE分区的时间类型为YEAR

CREATE TABLE orders(
  orderkey BIGINT NOT NULL,
  custkey BIGINT NOT NULL,
  orderdate DATE NOT NULL
)
PARTITION BY RANGE COLUMNS(orderdate) INTERVAL(MONTH, 1) (
  PARTITION p0 VALUES LESS THAN('2021-10-01')
);

ALTER TABLE orders SET INTERVAL(YEAR, 1);