移除二级分区

使用ALTER TABLE … DROP SUBPARTITION删除二级子分区表。

使用移除分区操作时,应注意以下规则:

此操作只支持范围,列表分区表。

如果表的某个一级子分区表只含有一个二级子分区表,那么应该利用drop_table_partition来删除一级子分区表,而不能利用drop_table_subpartition来删除二级子分区表。

示例:删除表tab的子分区p1_sub2

--  清理环境
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 varchar(2)
)
PARTITION BY RANGE(C1)
SUBPARTITION BY LIST(C2)
(
    PARTITION p1 VALUES LESS THAN(10)
    (
        SUBPARTITION p1_sub1 VALUES ('A1', 'A2'),
        SUBPARTITION p1_sub2 VALUES ('B1', 'B2', 'B3')
    ),
    PARTITION p2 VALUES LESS THAN(20)
);

ALTER TABLE tab DROP SUBPARTITION p1_sub2;

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