Ciao a tutti,
devo creare un trigger (after insert) su una tabella Oracle. La condizione è questa:
SE campo1 = 'x' AND campo2 is NULL AND campo3 is NOT NULL THEN campo2 = campo3
ho provato a creare il trigger in questo modo:
CREATE OR REPLACE TRIGGER TR_oper
AFTER INSERT ON tabella1 FOR EACH ROW
BEGIN
IF :NEW.campo1= 'x'
AND :NEW.campo2 IS NULL AND :NEW.campo3 IS NOT NULL
THEN UPDATE tabella1 SET campo2 = campo3;
END IF;
END;
la compilazione viene effettuata ma se provo ad effettuare una insert nella tabella mi da errore:
ORA-04091: table tabella1 is mutating, trigger/function may not see it
ORA-06512: at "campo3", line 5
ORA-04088: error during execution of trigger 'tr_oper'
ORA-06512: at line 1
dove sbaglio?