Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verwenden von Triggern zum Sicherstellen der Datenkonsistenz

Es kann möglich sein, dies durch eine Kombination aus einer materialisierten Ansicht (MV) und einer Einschränkung für die MV zu erzwingen, wie ich hier in meinem Blog .

Die Idee wäre, einen MV zu erstellen, der nur Ausnahmen von der Regel enthält, und dann eine Einschränkung zu haben, die immer fehlschlägt, wenn eine Zeile in den MV eingegeben wird. Etwa so:

create materialized view check_mv
refresh complete on commit as
select 1 dummy
from catalogue c1, catalogue c2 
where c1.next_id = c2.previous_id and c1.parent_id != c2.parent_id

alter table check_mv
add constraint check_mv_chk
check (1=0) deferrable;