Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

usando gatilhos para garantir a consistência dos dados


Pode ser possível impor isso por uma combinação de uma visão materializada (MV) e uma restrição no MV, conforme descrevi aqui no meu blog .

A ideia seria criar um MV que mantivesse apenas exceções à regra e, em seguida, ter uma restrição que sempre falha quando uma linha é inserida no MV. Algo assim:
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;