↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3
历史版本。 PostgreSQL 13 已结束支持。 2025-11-13. 请参阅 当前版本手册.

CREATE MATERIALIZED VIEW

CREATE MATERIALIZED VIEW — 定义一个新物化视图

大纲

CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name
    [ (column_name [, ...] ) ]
    [ USING method ]
    [ WITH ( storage_parameter [= value] [, ... ] ) ]
    [ TABLESPACE tablespace_name ]
    AS query
    [ WITH [ NO ] DATA ]

描述

CREATE MATERIALIZED VIEW 定义一个基于查询的物化视图。在发出该命令时,会执行该查询并用其结果填充该视图(除非使用了 WITH NO DATA),之后可以使用 REFRESH MATERIALIZED VIEW 来刷新它。

CREATE MATERIALIZED VIEW 类似于 CREATE TABLE AS,不过它还会记住用于初始化该视图的查询,以便后续按需刷新。物化视图具有很多与表相同的属性,但不支持临时物化视图。

参数

IF NOT EXISTS

如果已存在同名物化视图,则不要抛出错误。在这种情况下会发出一条提示。请注意,不能保证现有的物化视图与原本会创建出来的那个物化视图有任何相似之处。

table_name

要创建的物化视图名称(可以带模式限定)。

column_name

新物化视图中的列名。如果没有提供列名,则采用查询输出列的名称。

USING method

该可选子句指定用于存储新物化视图内容的表访问方法;该方法必须是 TABLE 类型的访问方法。详见第 60 章。如果未指定此选项,则会为新物化视图选择默认表访问方法。详见 default_table_access_method。

WITH ( storage_parameter [= value] [, ... ] )

该子句为新物化视图指定可选的存储参数;更多信息见 CREATE TABLE 文档中的 Storage Parameters。凡是 CREATE TABLE 支持的参数,CREATE MATERIALIZED VIEW 也同样支持。另见 CREATE TABLE。

TABLESPACE tablespace_name

tablespace_name 是在其中创建新物化视图的表空间名称。如果没有指定,将查阅 default_tablespace。

query

一个 SELECT、TABLE 或 VALUES 命令。该查询将在一种安全受限的操作中运行。特别是,调用那些自身会创建临时表的函数将会失败。

WITH [ NO ] DATA

该子句指定是否在创建时填充物化视图。如果不填充,则该物化视图会被标记为不可扫描,在使用 REFRESH MATERIALIZED VIEW 之前不能查询。

兼容性

CREATE MATERIALIZED VIEW 是一种 PostgreSQL 扩展。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.