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的
Storage Parameters。所有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扩展。