如何从 PostgreSQL 中的显式分区中进行选择

Ale*_*x B 5 postgresql

在Oracle、MySQL中我可以从分区中选择

SELECT ... FROM ... PARTITION (...)
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 中,涉及分区函数的语法有点不同。

有没有办法在 PostgreSQL 中做到这一点?

谢谢你!

Dan*_*ité 3

PostgreSQL通过表继承提供分区

分区是与任何其他表一样具有唯一名称的子表,因此您只需直接使用其名称进行选择即可。唯一的特殊情况是父表:要从父表中选择数据而忽略子表,ONLY请使用附加关键字,如 中所示SELECT * FROM ONLY parent_table

手册中的示例:

CREATE TABLE measurement_y2006m02 (
    CHECK ( logdate >= DATE '2006-02-01' AND logdate < DATE '2006-03-01' )
) INHERITS (measurement);
Run Code Online (Sandbox Code Playgroud)

因此select * from measurement_y2006m02只能从该分区获取数据。