将 postgres 分区添加到现有 table

add postgres partitioning to existing table

所有示例显示:

CREATE TABLE ... PARTITION BY ...

这有点荒谬,因为只有在数据集变得太大时才会使用分区,根据定义,这不会是新的 table。如果有人正在使用分区制作新的 table,我认为几乎任何人都会批评这是过早的优化。

只需创建分区 table 并将现有 table 作为分区附加:

create table test (a int);

insert into test select generate_series(1,10);

alter table test_parent attach partition test DEFAULT;

select * from test_parent;
 a
----
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
(10 rows)

您也可以重命名 table。但是,如果这样做,您将需要重新定义指向原始 table.

的任何视图