修改分区模板

修改分区模板:可以通过替换新分区模板的方式修改复合分区表的分区模板。

使用ALTER TABLE … SET SUBPARTITION TEMPLATE语句指定一个新的分区模板。在接下来的任何使用分区模板(如添加分区、合并分区)的后续操作中都将使用新的分区模板,而已经存在的子分区表保持不变。如果修改间隔-复合分区表的分区模板,则后续尚未被创建的间隔子分区表将会使用新的分区模板。如果创建复合分区表时没有指定分区模板,那么执行修改分区模板操作会为复合分区表添加模板。

示例:修改分区模板

--  清理环境
DROP TABLE tab;
DROP TABLESPACE ts1;
DROP TABLESPACE ts2;

--  创建表空间
CREATE TABLESPACE ts1 DATAFILE 'ts1.dt' SIZE 5M AUTOEXTEND ON NEXT 5M;
CREATE TABLESPACE ts2 DATAFILE 'ts2.dt' SIZE 5M AUTOEXTEND ON NEXT 5M;

-- 创建分区表
CREATE TABLE tab
(
    c1 int, 
    c2 int
)
PARTITION BY RANGE(C1)
SUBPARTITION BY HASH(C2)
SUBPARTITIONS 4
( 
    PARTITION p1 VALUES LESS THAN(10),
    PARTITION p2 VALUES LESS THAN(20)
);

--修改分区模板
ALTER TABLE tab SET SUBPARTITION TEMPLATE
(
    SUBPARTITION p1_sub1 TABLESPACE ts1,
    SUBPARTITION p1_sub2 TABLESPACE ts2
);

--可以通过指定一个空的列表删除分区模板
ALTER TABLE tab SET SUBPARTITION TEMPLATE ( );

--  删除表和表空间
DROP TABLE tab CASCADE;
DROP TABLESPACE ts1;
DROP TABLESPACE ts2;