在 PostgreSQL 中创建无界子分区时出错
Error When Creating an Unbounded Child Partition in PostgreSQL
我是 运行 Postgres 12,并遵循 O'Reilly Media 出版的名为 PostgreSQL: Up and 运行 一书中的示例。我正在尝试创建一个分区的 table 组,如下所示:
CREATE TABLE logs (
log_id int GENERATED BY DEFAULT AS IDENTITY,
user_name varchar(50),
description text,
log_ts timestamp with time zone NOT NULL DEFAULT current_timestamp
) PARTITION BY RANGE (log_ts);
子分区是:
CREATE TABLE logs_gt_2011 PARTITION OF logs
FOR VALUES FROM ('2012-1-1') TO (unbounded);
这个returns错误:
ERROR: cannot use column reference in partition bound expression
LINE 2: for values from ('2012-1-1') to (unbounded);
这让它看起来好像认为 unbounded
是一个列名。我认为 unbounded
是 Postgres 关键字。你能帮我找出创建这个子分区的正确方法吗?
我是 运行 Postgres,在 Windows 10 机器上,来自 Powershell。
不确定这本书的出处,但根据 to the manual,应该是 maxvalue
:
The special values MINVALUE and MAXVALUE may be used when creating a range partition to indicate that there is no lower or upper bound on the column's value
CREATE TABLE logs_gt_2011 PARTITION OF logs
FOR VALUES FROM ('2012-01-01') TO (maxvalue);
我是 运行 Postgres 12,并遵循 O'Reilly Media 出版的名为 PostgreSQL: Up and 运行 一书中的示例。我正在尝试创建一个分区的 table 组,如下所示:
CREATE TABLE logs (
log_id int GENERATED BY DEFAULT AS IDENTITY,
user_name varchar(50),
description text,
log_ts timestamp with time zone NOT NULL DEFAULT current_timestamp
) PARTITION BY RANGE (log_ts);
子分区是:
CREATE TABLE logs_gt_2011 PARTITION OF logs
FOR VALUES FROM ('2012-1-1') TO (unbounded);
这个returns错误:
ERROR: cannot use column reference in partition bound expression
LINE 2: for values from ('2012-1-1') to (unbounded);
这让它看起来好像认为 unbounded
是一个列名。我认为 unbounded
是 Postgres 关键字。你能帮我找出创建这个子分区的正确方法吗?
我是 运行 Postgres,在 Windows 10 机器上,来自 Powershell。
不确定这本书的出处,但根据 to the manual,应该是 maxvalue
:
The special values MINVALUE and MAXVALUE may be used when creating a range partition to indicate that there is no lower or upper bound on the column's value
CREATE TABLE logs_gt_2011 PARTITION OF logs
FOR VALUES FROM ('2012-01-01') TO (maxvalue);