2024 年 9 月 26 日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:开发版
不支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3

创建物化视图

创建物化视图 — 定义一个新的物化视图

概要

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

描述

创建物化视图定义了查询的物化视图。该查询在发出命令时执行并用于填充视图(除非使用 无数据),并且可以使用 刷新物化视图在以后刷新。

创建物化视图类似于 创建表作为,区别在于它还记住用于初始化视图的查询,以便可以根据需要在以后刷新它。物化视图具有与表相同的许多属性,但不支持临时物化视图。

创建物化视图需要对用于物化视图的模式拥有 创建权限。

参数

如果不存在

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

表名

要创建的物化视图的名称(可选地限定模式)。该名称必须与同一模式中的任何其他关系(表、序列、索引、视图、物化视图或外部表)的名称不同。

列名

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

使用 方法

此可选子句指定用于存储新物化视图内容的表访问方法;该方法需要是类型为 TABLE 的访问方法。有关更多信息,请参见 第 61 章。如果没有指定此选项,则为新物化视图选择默认表访问方法。有关更多信息,请参见 default_table_access_method

带括号的 (存储参数 [= ] [, ... ] )

此子句指定新物化视图的可选存储参数;有关更多信息,请参见 存储参数,该参数在 创建表 文档中提供。支持 创建表的所有参数也支持 创建物化视图。有关更多信息,请参见 创建表

表空间 表空间名

表空间名是要创建新物化视图的表空间的名称。如果未指定,则查询 default_tablespace

查询

一个 选择 命令。此查询将在安全受限的操作中运行;特别是,对自身创建临时表的函数的调用将失败。

带 [不] 数据

此子句指定是否应在创建时填充物化视图。如果没有,则物化视图将被标记为不可扫描,并且在使用 刷新物化视图之前无法查询。

兼容性

创建物化视图PostgreSQL 扩展。

提交更正

如果您在文档中发现任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用 此表格 报告文档问题。