From: | Juan Pablo Yañez <jyanez(at)sigma(dot)gov(dot)bo> |
---|---|
To: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Update en Trigger Volatile |
Date: | 2005-06-10 15:52:50 |
Message-ID: | 42A9B752.9080106@sigma.gov.bo |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola a todos, tengo el siguiente trigger
CREATE TRIGGER egabenef_val_general BEFORE INSERT OR UPDATE
ON ejecucion_gastos_benef FOR EACH ROW
EXECUTE PROCEDURE egaben_val_general();
que llama a la siguiente funcion declarada como VOLATILE:
CREATE OR REPLACE FUNCTION egaben_val_general() RETURNS trigger AS
$body$
DECLARE
vl_existe varchar;
BEGIN
IF NEW.api_transaccion in ('CREAR','MODIFICAR') THEN
NEW.saldo_beneficiario = NEW.monto_beneficiario;
ELSE
IF abs(NEW.monto_beneficiario)<abs(NEW.saldo_beneficiario) THEN
RAISE EXCEPTION 'Error en control de saldo de beneficiario.';
END IF;
END IF;
RETURN NEW;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
pero en el momento del INSERT o UPDATE, me devuelve el siguiente mensaje
de error:
ERROR: UPDATE is not allowed in a non-volatile function.
Que estoy haciendo mal ?
Saludos.
--
Juan Pablo Yañez
Grupo DBA
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2005-06-10 16:17:17 | Re: Update en Trigger Volatile |
Previous Message | Jaime Casanova | 2005-06-10 15:49:02 | Re: Backup |