Postgres:可以将现有表添加到分区表吗?

问题描述 投票:0回答:0

简而言之:我正在寻找一种无需复制数据即可将现有表添加到现有分区表的方法。

有一个这样的分区表:

CREATE TABLE partitioned_table
    (
        partition_key    VARCHAR,
        etl_created_at   TIMESTAMP,
        field1           VARCHAR,          -- the actual table contains way more fields
        field2           VARCHAR,          -- for this question, the layout of the table
        field3           DOUBLE PRECISION. -- is irrelevant
    ) PARTITION BY LIST(partition_key)
    ;

请注意,此表是使用 Postgres 分区的。

是否可以将以前填充的表添加到该表中,该表仅具有单个

partition_key
值的值,而无需复制所有数据?

例如假设还有一个表

partitioned_table_partition10
是这样创建的:

CREATE TABLE partitioned_table_partition10
    (
        partition_key    VARCHAR,
        etl_created_at   TIMESTAMP,
        field1           VARCHAR,          -- the actual table contains way more fields
        field2           VARCHAR,          -- for this question, the layout of the table
        field3           DOUBLE PRECISION. -- is irrelevant
    )
    ;

我想知道是否可以直接“附加”

partitioned_table_partition10
作为
partitioned_table
的分区。在伪 SQL 中,类似于:
ALTER TABLE partitioned_table ADD PARTITION partitioned_table_partition10 FOR VALUE('partition10`)

我为什么要问? 目前我有一个脚本可以并行创建这些分区。我最终对主表进行了大量的阻止交易 (

partitioned_table
)。

如果脚本将这些表创建为独立表,然后告诉 postgres 将这些独立表视为主表的分区,则此过程(希望)会更快一些。

postgresql partitioning partition database-partitioning
© www.soinside.com 2019 - 2024. All rights reserved.