在 PostgreSQL 中,CREATE MATERIALIZED VIEW 语句用于创建物化视图(Materialized View)。物化视图是一种能够存储查询结果的表,这样可以通过对该表的查询来快速获取预先计算的结果,提高查询性能。以下是 CREATE MATERIALIZED VIEW 语句的基本语法:
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] view_name
  [ ( column_name [, ...] ) ]
  [ TABLESPACE tablespace_name ]
  AS query
  [ WITH [ NO ] DATA ];

其中:

  •  IF NOT EXISTS: 可选部分,表示如果物化视图已经存在,则忽略错误。

  •  view_name: 物化视图的名称。

  •  ( column_name [, ...] ): 可选部分,指定物化视图的列名。

  •  TABLESPACE tablespace_name: 可选部分,指定物化视图存储的表空间。

  •  query: 定义物化视图的查询,该查询的结果将被存储在物化视图中。

  •  WITH [ NO ] DATA: 可选部分,表示是否立即填充物化视图。如果使用 WITH DATA,则会执行查询并将结果存储在物化视图中。


以下是一个简单的示例,创建一个名为 "materialized_sales" 的物化视图,存储了销售数据的总和:
CREATE MATERIALIZED VIEW materialized_sales
AS
SELECT product_id, SUM(quantity_sold) AS total_quantity
FROM sales
GROUP BY product_id
WITH DATA;

在上述示例中,materialized_sales 是物化视图的名称,存储了按产品ID分组的销售数据的总和。

请注意,创建物化视图的权限通常需要数据库管理员权限。物化视图需要定期刷新以保持与底层表的数据同步,可以使用 REFRESH MATERIALIZED VIEW 命令来手动刷新物化视图。


转载请注明出处:http://www.zyzy.cn/article/detail/8665/PostgreSQL