目录

文档用途    

详细信息    

相关文档    

 

文档用途

本文阐述了如何管理物化视图,并展示部分示例。

 

详细信息

创建物化视图

 

CREATE MATERIALIZED VIEW 定义一个新的物化视图

 

Synopsis

CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] 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进行刷新。

 

参数

 

IF NOT EXISTS

如果已经存在一个同名的物化视图时不要抛出错误。这种情况下会发出一个 提示。注意这不保证现有的物化视图与即将创建的物化视图相似。

 

table_name

要创建的物化视图的名称(可以被模式限定)。

 

column_name

新物化视图中的一个列名。如果没有提供列名,会从查询的输出列名来得到。

 

WITH ( storage_parameter [= value] [, ... ] )

这个子句为新的物化视图指定可选的存储参数。WITH子句能够为表或与一个UNIQUE、PRIMARY KEY或者EXCLUDE约束相关的索引指定存储参数。

 

TABLESPACE tablespace_name

tablespace_name是 要把新物化视图创建在其中的表空间的名称。

 

query

一个SELECT、TABLE 或者VALUES命令。这个查询将在一个安全受限的操作中运行。 特别说明,对本身会创建临时表的函数的调用将会失败。

 

WITH [ NO ] DATA

这个子句指定物化视图是否在创建时被填充。如果不是,该物化视图将被标记为不可扫描并且在REFRESH MATERIALIZED VIEW被使用前不能被查询。

 

 

示例

创建物化视图:

 

highgo=# CREATE MATERIALIZED VIEW IF NOT EXISTS tbl_view TABLESPACE pg_default as  select * from tbl WITH no data;

CREATE MATERIALIZED VIEW

 

highgo=# select * from tbl_view;

ERROR:  55000: materialized view "tbl_view" has not been populated

提示:  Use the REFRESH MATERIALIZED VIEW command.

 

highgo=# REFRESH MATERIALIZED VIEW tbl_view;

REFRESH MATERIALIZED VIEW

 

highgo=# select * from tbl_view;

  id

------

    1

    2

3

 

 

 

 

 

修改物化视图

 

ALTER MATERIALIZED VIEW 更改一个物化视图的定义