我有两个表:tb1和tb2,我正在执行左连接以从这两个表创建名为tb3的新表。有时,tb1和tb2会用新行进行更新,并且想要执行相同的左联接来创建更新的tb3表,是否可以在每次表更新时不编写新的左联接来执行此任务?什么样的任务最好的解决方案是什么?
答案 0 :(得分:0)
使用视图:
create view v_tb3 as
select . . .
from table1 t1 left join
table2 t2
on . . .
. . .;
这将在您每次访问视图时运行查询。这样可以确保数据是最新的。
如果您实际上想将数据保留为表格(因此不需要重新计算),则可以使用materialized view:
create materialized view mv_tb3 as
select . . .
from table1 t1 left join
table2 t2
on . . .
. . .;
但是,关于数据的最新性有一些警告。维护视图需要开销。 left join
通常并不特别昂贵,因此我通常会建议一个简单的视图。