Oracle
 sql >> Base de données >  >> RDS >> Oracle

utiliser des déclencheurs pour assurer la cohérence des données

Il peut être possible d'appliquer cela en combinant une vue matérialisée (MV) et une contrainte sur le MV comme je l'ai décrit ici sur mon blog .

L'idée serait de créer un MV qui ne contiendrait que des exceptions à la règle, puis d'avoir une contrainte qui échoue toujours lorsqu'une ligne est entrée dans le MV. Quelque chose comme ça :

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;