CREATE MATERIALIZED VIEW会创建一个全量物化视图,并且后续可以使用REFRESH MATERIALIZED VIEW(全量刷新)刷新物化视图的数据。
CREATE MATERIALIZED VIEW类似于CREATE TABLE AS,不过它会记住被用来初始化该视图的查询, 因此它可以在后续中进行数据刷新。一个物化视图有很多和表相同的属性,但是不支持临时物化视图。
CREATE MATERIALIZED VIEW mv_name
[ (column_name [, ...] ) ]
[ WITH ( {storage_parameter = value} [, ... ] ) ]
[ TABLESPACE tablespace_name ]
AS query
[ WITH [ NO ] DATA ];
mv_name
要创建的物化视图的名称(可以被模式限定)。
取值范围:字符串,要符合标识符的命名规范。
column_name
新物化视图中的一个列名。物化视图支持指定列,指定列需要和后面的查询语句结果的列数量保持一致;如果没有提供列名,会从查询的输出列名中获取列名。
取值范围:字符串,要符合标识符的命名规范。
WITH ( storage_parameter [= value] [, ... ] )
这个子句为表或索引指定一个可选的存储参数。详见CREATE TABLE。
TABLESPACE tablespace_name
指定新建物化视图所属表空间。如果没有声明,将使用默认表空间。
AS query
一个SELECT、TABLE 或者VALUES命令。这个查询将在一个安全受限的操作中运行。
--创建一个普通表
postgres=# CREATE TABLE my_table (c1 int, c2 int);
--创建全量物化视图
postgres=# CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM my_table;
--基表写入数据
postgres=# INSERT INTO my_table VALUES(1,1),(2,2);
--对全量物化视图my_mv进行全量刷新
postgres=# REFRESH INCREMENTAL MATERIALIZED VIEW my_mv;
ALTER MATERIALIZED VIEW, CREATE INCREMENTAL MATERIALIZED VIEW,CREATE TABLE,DROP MATERIALIZED VIEW,REFRESH INCREMENTAL MATERIALIZED VIEW,REFRESH MATERIALIZED VIEW
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。