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

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

Wiki / SQL 命令

CREATE MATERIALIZED VIEW

定义一个新物化视图

英文手册覆盖始于 PostgreSQL 6.4. 来源历史与运行验证各自保留独立版本边界。

当前阅读 PG 18·选择有来源记录的版本

anchor
SQL-CREATEMATERIALIZEDVIEW
file
sql-creatematerializedview.html
lang
en
name
CREATE MATERIALIZED VIEW
purpose
define a new materialized view
purpose zh
未知
sections same as
未知
slug
18
synopsis text
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 [ IF NOT EXISTS ] table_name
[ (column_name [, ...] ) ]
[ USING method ]
[ WITH ( storage_parameter [= value] [, ... ] ) ]
[ TABLESPACE tablespace_name ]
AS query
[ WITH [ NO ] DATA ]
语法图

从左向右阅读;分支表示选择,旁路表示可选,循环表示重复。点击带下划线的参数可打开对应规则。

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

版本定义 PG 18

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,不过它还会记住用于初始化该视图的查询,以便后续按需刷新。物化视图具有很多与表相同的属性,但不支持临时物化视图。

CREATE MATERIALIZED VIEW要求对该物化视图所用的模式具有CREATE权限。

参数

IF NOT EXISTS

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

table_name

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

column_name

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

USING method

该可选子句指定用于存储新物化视图内容的表访问方法;该方法必须是 TABLE类型的访问方法。详见第 62 章。如果未指定此选项,则会为新物化视图选择默认表访问方法。详见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命令。该查询将在一种安全受限的操作中运行。特别是,调用那些自身会创建临时表的函数将会失败。另外,在该查询运行期间,search_path会被临时改为 pg_catalog, pg_temp。

WITH [ NO ] DATA

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

兼容性

CREATE MATERIALIZED VIEW是一种 PostgreSQL扩展。

另见

ALTER MATERIALIZED VIEW, CREATE TABLE AS, CREATE VIEW, DROP MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW

比较版本

完整来源事实

synopsis html

CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] <em class="replaceable"><code>table_name</code></em>
    [ (<em class="replaceable"><code>column_name</code></em> [, ...] ) ]
    [ USING <em class="replaceable"><code>method</code></em> ]
    [ WITH ( <em class="replaceable"><code>storage_parameter</code></em> [= <em class="replaceable"><code>value</code></em>] [, ... ] ) ]
    [ TABLESPACE <em class="replaceable"><code>tablespace_name</code></em> ]
    AS <em class="replaceable"><code>query</code></em>
    [ WITH [ NO ] DATA ]

来源引用

完整定义与证据 JSON

定义来源

center · PostgreSQL 18 · a709ab85

正文语言: zh-Hans · 1b5ca64c