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