更新时间:2026-07-28 GMT+08:00
分享

开启/关闭一级范围分区自动扩展

使用ALTER TABLE SET INTERVAL可以开启/关闭一级范围分区自动扩展。

例如:

  • 开启范围分区自动扩展。
    gaussdb=# CREATE TABLE range_int (c1 int, c2 int) 
    PARTITION BY RANGE (c1)
    (
        PARTITION p1 VALUES LESS THAN (5),
        PARTITION p2 VALUES LESS THAN (10),
        PARTITION p3 VALUES LESS THAN (15)
    );
    
    gaussdb=# ALTER TABLE range_int SET INTERVAL (5);
    或者
    gaussdb=# CREATE TABLE range_list (c1 int, c2 int) 
    PARTITION BY RANGE (c1) SUBPARTITION BY LIST (c2)
    (
        PARTITION p1 VALUES LESS THAN (5)(
            SUBPARTITION sp11 VALUES (1, 2, 3),
            SUBPARTITION sp12 VALUES (4, 5, 6)
        ),
        PARTITION p2 VALUES LESS THAN (10)(
            SUBPARTITION sp21 VALUES (1, 2, 3),
            SUBPARTITION sp22 VALUES (4, 5, 6)
        )
    );
    
    gaussdb=# ALTER TABLE range_list SET PARTITIONING INTERVAL (5);
    • 非透明多写特性下,开启一级范围分区自动扩展要求一级分区中不能存在分区键值为MAXVALUE的分区。
    • 开启范围分区自动扩展只支持单列分区键。
  • 关闭一级范围分区自动扩展。
    gaussdb=# ALTER TABLE range_int SET INTERVAL ();

    或者:

    gaussdb=# ALTER TABLE range_list SET PARTITIONING INTERVAL ();
  • 清理示例。
    gaussdb=# DROP TABLE range_int;
    gaussdb=# DROP TABLE range_list;

相关文档