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
类似,但它还记住用于初始化视图的查询,以便以后可以根据需要刷新它。物化视图具有与表相同的大多数属性,但不支持临时物化视图。
CREATE MATERIALIZED VIEW
需要对用于物化视图的模式具有CREATE
权限。
参数
IF NOT EXISTS
如果已存在同名的物化视图,则不抛出错误。在这种情况下会发出通知。请注意,无法保证现有的物化视图与将创建的视图类似。
table_name
要创建的物化视图的名称(可选模式限定)。该名称必须与同一模式中任何其他关系(表、序列、索引、视图、物化视图或外部表)的名称不同。
column_name
新物化视图中列的名称。如果未提供列名,则从查询的输出列名中获取列名。
USING
method
此可选子句指定用于存储新物化视图内容的表访问方法;该方法需要是类型为
TABLE
的访问方法。有关详细信息,请参见第 63 章。如果未指定此选项,则为新物化视图选择默认表访问方法。有关详细信息,请参见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
命令。此查询将在安全受限的操作中运行;特别是,调用创建临时表的函数本身将失败。WITH [ NO ] DATA
此子句指定在创建时是否填充物化视图。如果没有,物化视图将标记为不可扫描,并且在使用
REFRESH MATERIALIZED VIEW
之前无法对其进行查询。
兼容性
CREATE MATERIALIZED VIEW
是PostgreSQL扩展。
另请参见
ALTER MATERIALIZED VIEW、CREATE TABLE AS、CREATE VIEW、DROP MATERIALIZED VIEW、REFRESH MATERIALIZED VIEW