要点:增加build deferred创建物化视图时,视图表中不产生数据,需要手动刷新,如果增加on commit那么以后基表进行commit操作,物化视图会自动刷新。

1、--创建时不生成数据的物化视图
create materialized view mv_address3
build deferred
refresh
on commit
as
select ad.id,ad.name,ar.name arname
from t_address ad,t_area ar
where ad.areaid=ar.id

2、--查询物化视图
select * from mv_address3;

3、--向基表插入数据
insert into t_address values(11,'西6旗',2,2);
commit;

4、--执行刷新语句(第一次必须手动执行刷新)
begin
  DBMS_MVIEW.refresh('MV_ADDRESS3','C');
end;

5、--向基表插入数据
insert into t_address values(12,'西7旗',2,2);
commit;