You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何在单条语句中声明多个分区

PostgreSQL 单条语句创建多个分区的实现方案

PostgreSQL 支持多种方式实现和Oracle类似的单次操作创建多个分区,具体如下:

  • 方式1:ALTER TABLE批量追加分区(支持PostgreSQL 11+)
    已经创建分区主表后,可以在单条ALTER TABLE语句中添加多个ADD PARTITION子句完成批量分区创建,示例如下:
    首先创建范围分区主表:
    CREATE TABLE orders (
        order_id INT,
        create_time DATE,
        amount NUMERIC
    ) PARTITION BY RANGE(create_time);
    
    单条语句创建2024年上半年6个月的分区:
    ALTER TABLE orders
    ADD PARTITION orders_202401 VALUES FROM ('2024-01-01') TO ('2024-02-01'),
    ADD PARTITION orders_202402 VALUES FROM ('2024-02-01') TO ('2024-03-01'),
    ADD PARTITION orders_202403 VALUES FROM ('2024-03-01') TO ('2024-04-01'),
    ADD PARTITION orders_202404 VALUES FROM ('2024-04-01') TO ('2024-05-01'),
    ADD PARTITION orders_202405 VALUES FROM ('2024-05-01') TO ('2024-06-01'),
    ADD PARTITION orders_202406 VALUES FROM ('2024-06-01') TO ('2024-07-01');
    
  • 方式2:建表时同步创建多个分区(支持PostgreSQL 14+)
    从PostgreSQL 14开始,支持在CREATE TABLE创建分区主表的语句中直接定义所有分区,和Oracle的单条建表+分区语法完全对齐:
    CREATE TABLE orders (
        order_id INT,
        create_time DATE,
        amount NUMERIC
    ) PARTITION BY RANGE(create_time)
    PARTITION orders_202401 VALUES FROM ('2024-01-01') TO ('2024-02-01'),
    PARTITION orders_202402 VALUES FROM ('2024-02-01') TO ('2024-03-01'),
    PARTITION orders_202403 VALUES FROM ('2024-03-01') TO ('2024-04-01');
    
  • 方式3:低版本兼容批量创建方案
    如果你使用的是PostgreSQL 10及更早版本,不支持上述语法,可以通过执行一次DO匿名代码块批量生成所有分区:
    DO $$
    DECLARE
        month_start DATE := '2024-01-01';
    BEGIN
        FOR i IN 1..6 LOOP
            EXECUTE format(
                'CREATE TABLE orders_%s PARTITION OF orders VALUES FROM (%L) TO (%L)',
                to_char(month_start, 'YYYYMM'),
                month_start,
                month_start + INTERVAL '1 month'
            );
            month_start := month_start + INTERVAL '1 month';
        END LOOP;
    END $$;
    

所有方式创建的分区都支持正常的增删改查操作,和单独创建的分区没有差异。

内容的提问来源于stack exchange,提问作者Pushpender Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:15:05