create table test1 (a number); alter table test1 add constraint test1pk primary key (a); CREATE MATERIALIZED VIEW LOG ON test1 WITH PRIMARY KEY, ROWID INCLUDING NEW VALUES; create materialized view test1_mv refresh fast on commit as select * from test1; select * from test1; no rows selected select * from test1_mv; no rows selected insert into test1 values (1); 1 row created. select * from test1; A ---------- 1 1 row selected. select * from test1_mv; no rows selected commit; Commit complete. select * from test1_mv; A ---------- 1 1 row selected.
Beim Commit werden die Änderungen an die MV propagiert. Erforderlich sind ein Primary Key (da könnte man natürlich auch einen synthetischen Key verwenden) und ein View Log, das alle Änderungen der Basis-Tabelle protokolliert.
Keine Kommentare:
Kommentar veröffentlichen