首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改具有相关视图的实例化视图

如何更改具有相关视图的实例化视图
EN

Stack Overflow用户
提问于 2020-07-24 21:36:38
回答 1查看 2.1K关注 0票数 6

我目前有一系列的物化视图View #1和View #2,我用它们来进行报告。

使用PGAdmin,我想更改物化视图#1的代码(只需更改where子句,视图的结构保持不变),但物化视图#2是从物化视图#1生成的。

有没有办法推迟任何检查,这样我就可以在不丢弃每个后续视图的情况下进行更改?

EN

回答 1

Stack Overflow用户

发布于 2020-07-24 22:22:45

是的..。

有一种解决方案可能并不适用于所有情况。重新运行所有依赖对象的创建脚本可能会更简单。

因此,虽然实体化视图的查询不能在不先删除实体化视图的情况下更改,但您可以将所述查询存储在常规视图中,并创建调用此常规视图的实体化视图。然后,您可以随意替换(更新)常规视图,然后只需刷新实体化视图。

代码语言:javascript
复制
create table test_table(id int, txt text);
insert into test_table values (1,'one'),(2,'two');

create or replace view test_view
AS 
 select id as v_id, 
        txt as v_txt
 from test_table;
 
 
create materialized view test_mat_view
AS
 select v_id, v_txt from test_view;
 
select * from test_mat_view; 
 
  v_id | v_txt
------+-------
    1 | one
    2 | two
(2 rows)
 
create or replace view test_view
AS 
 select id as v_id, 
        'constant' as v_txt
 from test_table;
 
REFRESH materialized view test_mat_view;
  
select * from test_mat_view; 
 
 v_id |  v_txt
------+----------
    1 | constant
    2 | constant
 
drop table test_table cascade;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63074692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档