Triggers

ibai
13 de Diciembre del 2005
Tengo una cuestion, y es que tengo un trigger asociado a la update de la clave primaria de una tabla y lo que quiero que haga es que cuando se modifique, modifique en cascada una foreign key que tiene. El problema viene porque esa foreign key esta en la misma tabla, es decir se relaciona consigo misma. Me da un error, que yo supongo que sera porque estoy queriendo actualizar una tabla que esta siendo actualizada o algo asi.

El trigger es el siguiente:
CREATE OR REPLACE TRIGGER TRG_FK8_TLINEAPROPUESTA
AFTER UPDATE OF LPNUMERO,LPPROPUESTA
ON AMPCYC_TLINEAPROPUESTA
FOR EACH ROW
BEGIN
UPDATE AMPCYC_TLINEAPROPUESTA
SET LPNUMEROORIGEN =:NEW.LPNUMERO,
LPPROPUESTAORIGEN =:NEW.LPPROPUESTA
WHERE LPNUMEROORIGEN =:OLD.LPNUMERO AND LPPROPUESTAORIGEN =:OLD.LPOFERTA;
END;

y el error que da es este:
ORA-04091: table TLINEAPROPUESTA is mutating, trigger/function may not see it
ORA-06512: at "TRG_FK8_TLINEAPROPUESTA", line 2
ORA-04088: error during execution of trigger 'TRG_FK8_TLINEAPROPUESTA'

Gracias y un saludo