sql >> Base de Datos >  >> RDS >> Oracle

uso de disparadores para garantizar la consistencia de los datos

Puede ser posible hacer cumplir esto mediante una combinación de una vista materializada (MV) y una restricción en el MV como he descrito aquí en mi blog .

La idea sería crear un MV que tuviera solo excepciones a la regla y luego tener una restricción que siempre falla cuando se ingresa una fila en el MV. Algo como esto:

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;