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 ]语法图
从左向右阅读;分支表示选择,旁路表示可选,循环表示重复。点击带下划线的参数可打开对应规则。
版本定义 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新物化视图中的列名。如果没有提供列名,则采用查询输出列的名称。
USINGmethod该可选子句指定用于存储新物化视图内容的表访问方法;该方法必须是
TABLE类型的访问方法。详见第 62 章。如果未指定此选项,则会为新物化视图选择默认表访问方法。详见default_table_access_method。WITH (storage_parameter[=value] [, ... ] )该子句为新物化视图指定可选的存储参数;更多信息见CREATE TABLE文档中的Storage Parameters。凡是
CREATE TABLE支持的参数,CREATE MATERIALIZED VIEW也同样支持。另见CREATE TABLE。TABLESPACEtablespace_nametablespace_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 ]来源引用
定义来源
center · PostgreSQL 18 · a709ab85
正文语言: zh-Hans · 1b5ca64c