最近在接触物化视图,觉得物化视图还是个挺好玩的东西。
在创建的时候,不像表啊,视图啊,几乎没有约束条件。物化视图的创建有很多约束条件。
我们A服务器上有一个表t_a,
然后我在B服务器上创建物化视图:
create materialized view v_a
fresh on demand
as select * from t_a@dblink_A;
提示: 表 t_a 不包含主键约束条件。
好,我帮你添加主键:
alter table t_a add constriants pk_t_a primary key(col_name);
再执行创建物化视图命令,提示:
表t_a 不带实体化物化视图日志
好,我帮你加物化视图日志:
create materialized view log on t_a with rowid;
再执行创建物化视图命令,提示:
表t_a的实体化视图日志不记录主键。
好,明白了,物化视图日志要记录主键。先删此前的物化视图日志,重新建一个。
drop materialized view log on t_a;
create materialized view log on t_a ;
再执行创建物化视图命令,就顺利成功了~~
这个事例告诉我们,创建物化视图,原表要具有主键,且主键要被物化视图日志记录。