Update en Trigger Volatile

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

Responses

Browse pgsql-es-ayuda by date

  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