Oracle MV刷新而不删除数据
专家们 我需要帮助在Oracle中创建一个物化视图,该视图不会在从基表删除时从MV中删除数据 我的基本表:Oracle MV刷新而不删除数据,oracle,Oracle,专家们 我需要帮助在Oracle中创建一个物化视图,该视图不会在从基表删除时从MV中删除数据 我的基本表: 1) create table one11 (aa INT, bb INT, cc varchar2(10)); 2) alter table one11 add primary key(aa); 3) insert into one11 values(1,1,'AA'); 4) insert into one11 values(2,1,'BB'); 5) insert into one1
1) create table one11 (aa INT, bb INT, cc varchar2(10));
2) alter table one11 add primary key(aa);
3) insert into one11 values(1,1,'AA');
4) insert into one11 values(2,1,'BB');
5) insert into one11 values(3,1,'CC');
6)CREATE MATERIALIZED VIEW LOG ON ONE11
WITH PRIMARY KEY, SEQUENCE, ROWID(BB, CC)
INCLUDING NEW VALUES;
7)CREATE MATERIALIZED VIEW one11_mv
REFRESH FAST
START WITH (SYSDATE) NEXT (SYSDATE + interval '1' minute) AS
select * from one11;
8)select * from one11_mv; --After 1 min
AA BB CC
1 1 AA
2 1 BB
3 1 CC
9) delete from one11 where aa= 3; --After 1 min
AA BB CC
1 1 AA
2 1 BB
----
The expected result from MV after delete statement
AA BB CC
1 1 AA
2 1 BB
3 1 CC
TIA
否。要刷新MV中的数据,您有两个选项:
- 完全刷新:在MV中重新运行查询
- 快速刷新:应用MV日志中的所有更改
- 滚动您自己的MV:插入/更新时将所有内容复制到另一个表
- 更改为软删除:向表中添加一个
标志,并将设置此标志的所有is_deleted
更改为deletes
。然后,MV可以包含这些“已删除”行,而所有其他应用程序代码都会隐藏这些行updates