ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# CREATE MATERIALIZED VIEW ## Name CREATE MATERIALIZED VIEW -- 定义一个物化视图 ## Synopsis ``` CREATE MATERIALIZED VIEW _table_name_ [ (_column_name_ [, ...] ) ] [ 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`, 除了它也使查询记住初始化视图,所以稍后需要时也可以被刷新。 物化视图和表一样有许多属性,但是不支持临时物化视图或自动生成OID。 ## 参数 `_table_name_` 要创建的物化视图的名字(可以有模式修饰)。 `_column_name_` 新的物化视图中的字段名。如果没有提供字段名,那么使用查询的输出字段名。 `WITH (` `_storage_parameter_` [= `_value_`] [, ... ] ) 这个子句为新的物化视图指定可选的存储参数;参阅 [_存储参数_](#calibre_link-86) 获取更多信息。所有`CREATE TABLE`支持的参数, `CREATE MATERIALIZED VIEW`也都支持,除了`OIDS`。 参阅[CREATE TABLE](#calibre_link-7)获取更多信息。 `TABLESPACE` `_tablespace_name_` `_tablespace_name_` 是新的物化视图在其中创建的表空间的名字。如果没有指定, 则查询[default_tablespace](#calibre_link-90)。 `_query_` [SELECT](#calibre_link-104)、[TABLE](#calibre_link-105)或 [VALUES](#calibre_link-106)命令。这个查询将在受到安全限制的操作内运行; 特别的,对函数的调用本身创建临时表将会失败。 `WITH [ NO ] DATA` 这个子句说明物化视图是否在创建时填充。如果不,物化视图将被标记为不可扫描, 并且不能被查询,直到使用了`REFRESH MATERIALIZED VIEW`。 ## 兼容性 `CREATE MATERIALIZED VIEW`是一个PostgreSQL扩展。 ## 又见 [ALTER MATERIALIZED VIEW](#calibre_link-607), [CREATE TABLE AS](#calibre_link-76), [CREATE VIEW](#calibre_link-473), [DROP MATERIALIZED VIEW](#calibre_link-603), [REFRESH MATERIALIZED VIEW](#calibre_link-608)