CREATE MATERIALIZED VIEW
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
,不过它还会记住被用来初始化该视图的查询,
这样它可以在后来被命令刷新。一个物化视图有很多和表相同的属性,但是不支持
临时物化视图。
参数
IF NOT EXISTS
如果已经存在一个同名的物化视图时不要抛出错误。这种情况下会发出一个 提示。注意这不保证现有的物化视图与即将创建的物化视图相似。
table_name
要创建的物化视图的名称(可以被模式限定)。
column_name
新物化视图中的一个列名。如果没有提供列名,会从查询的输出列名来得到。
USING
method
此可选子句指定用于存储新具体化视图内容的表访问方法;该方法需要是
TABLE
类型的访问方法。 详细信息请参考 第 60 章。如果未指定此选项,则为新具体化视图选择默认表访问方法。 详细信息请参考 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扩展。