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

3
我正在尝试创建一个带有分区和填充因子的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

我能够创建一个带有fillfactor但没有分区的PostgreSQL表。我使用的版本是14。

1个回答

4

如文档所述,您无法为分区表指定存储参数:

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

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

您只能在创建分区时定义fillfactor:

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);

1
非常感谢您的及时回复,它有效了。 - Thaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接