从手册
CREATE MATERIALIZED VIEW 与 CREATE TABLE AS 类似,不同之处在于它还记住了用于初始化视图的查询,以便以后可以根据需要对其进行刷新。
据我了解,刷新物化视图应该与 re 具有相同的效果create view as。但这不是这里发生的事情。
创建具有单列的表
drop table if exists t cascade;
create table t (a int);
insert into t (a) values (1);
创建物化视图
create materialized view mat_view_t as
select * from t ;
select * from mat_view_t;
 a 
---
 1
现在将一列添加到源表中
alter table t add column b int;
\d t
       Table "public.t"
 Column |  Type   | Modifiers 
--------+---------+-----------
 a      | integer | 
 b      | integer | 
然后物化视图被刷新
refresh materialized view mat_view_t;
select * from mat_view_t;
 a 
---
 1
\d mat_view_t 
Materialized view "public.mat_view_t"
 Column |  Type   | Modifiers 
--------+---------+-----------
 a      | integer | 
新专栏在哪里?这是预期的行为吗?如果是,那么我认为该手册具有误导性。