CREATE MATERIALIZED VIEW — 定义一个新的物化视图
CREATE MATERIALIZED VIEW [ IF NOT EXISTS ]table_name
[ (column_name
[, ...] ) ] [ USINGmethod
] [ WITH (storage_parameter
[=value
] [, ... ] ) ] [ TABLESPACEtablespace_name
] ASquery
[ 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
类型的访问方法。有关详细信息,请参阅 第 61 章。如果未指定此选项,则为新物化视图选择默认表访问方法。有关详细信息,请参阅 default_table_access_method。
WITH ( storage_parameter
[= value
] [, ... ] )
此子句为新的物化视图指定可选的存储参数;有关详细信息,请参阅 存储参数 中的 CREATE TABLE 文档。 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 扩展。
如果您在文档中看到任何不正确、与您特定功能的使用体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。