Postgresql 是否可以复制表并将新表转换为分区表

Postgresql 是否可以复制表并将新表转换为分区表,postgresql,Postgresql,我正在尝试从现有表中创建一个分区表 为此,我写了这个查询,但我的语法似乎不正确 创建表\u复制为 按范围datecalcul从表分区中选择*; 请注意,datecalcul是一个时间戳列类型 我的主要问题是,是否可以复制postgreSQL表并将新表转换为分区表?为什么不先创建表,然后向其中插入数据: -- step 1 - declare table defintion create table table_Duplicate ( < copy table structure from

我正在尝试从现有表中创建一个分区表

为此,我写了这个查询,但我的语法似乎不正确

创建表\u复制为 按范围datecalcul从表分区中选择*; 请注意,datecalcul是一个时间戳列类型


我的主要问题是,是否可以复制postgreSQL表并将新表转换为分区表?

为什么不先创建表,然后向其中插入数据:

-- step 1 - declare table defintion
create table table_Duplicate (
<  copy table structure from table >

) PARTITION BY RANGE (datecalcul);

-- step 2 - declare partitions 
create table tablename_2021 PARTITION OF table_Duplicate
for values from ('2021-01-01') TO ('2021-12-31');

create table tablename_2020 PARTITION OF table_Duplicate
for values from ('2020-01-01') TO ('2020-12-31');

... 


-- step 3 create indexes 

create index on  tablename_2021 (datecalcul);
create index on  tablename_2020 (datecalcul);
...



-- step 4 insert data 
insert into table_Duplicate
select * from table;

从PostgreSQL v13开始,您可以使用逻辑复制。谢谢!查询的第一部分正在工作。但是,当我尝试从无分区表中集成数据时,我遇到了一个错误,是因为datecalcul是tiemstamp字段吗?@Kakoo16 oops错过了一个重要步骤,请参阅更新的答案非常感谢!现在开始工作了!我想时间戳无关紧要?@Kakoo16是的,我只是想给你们一个例子,按照对你们场景有意义的范围对你们的表进行分区,并确保分区覆盖你们数据中所有可能的范围