如何创建带有分区和填充因子的PostgreSQL表



我试图创建一个带有分区和填充因子的PostgreSQL表,但我得到了一个错误

CREATE TABLE public."Test1" (
col1 int NOT NULL GENERATED BY DEFAULT AS IDENTITY,
col2 varchar NULL,
col3 date   null
)
partition by range (col3)
WITH (
fillfactor=80
);

错误为:

Error occurred during SQL query execution
Reason:
SQL Error [22023]: ERROR: unrecognized parameter "fillfactor

能够创建一个PostgreSQL表的填充因子和没有分区。我使用的版本是14。

如手册所述,您不能为分区表指定存储参数:

不支持为分区表指定这些参数,但可以为单个叶分区指定这些参数。

原因是分区表不包含任何数据,只有分区会包含。

您只能在创建分区时定义填充因子:

CREATE TABLE test1 
(
col1 int NOT NULL GENERATED BY DEFAULT AS IDENTITY,
col2 varchar NULL,
col3 date   null
)
partition by range (col3);
create table p1 
partition of test1 
FOR VALUES FROM ('2022-01-01') TO ('2022-07-01')
WITH (fillfactor=80);

最新更新