From: | roger gue <rockobop(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Trigger con varias funciones |
Date: | 2005-05-30 21:11:23 |
Message-ID: | bd5aaa8a050530141149fb867d@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Holas lista como estan mieren pues tengo un pequeño lio con triggers
generales aqui les va mi duda espero me puedan ayudar tengo una
funcion x q calcula salario y montos, y otra q me controla los
presupuestos es caso es q ambas tienen se ser ejecutadas cuando se
dispare un trigger pero no se como hacerlo el codigo es el siguiente:
CREATE FUNCTION ctrl_presup () RETURNS TRIGGER AS '
BEGIN
--controlando
if (new.monto_ejecutado>new.monto_presupuesto)
THEN
RAISE EXCEPTION ''no puede haber un monto
presupuestado mayor al ejecutado'';
END IF;
RETURN NEW;
END;
' LANGUAGE 'plpgsql';
CREATE FUNCTION ctrl_presp_finan_rec_eco () RETURNS TRIGGER AS '
DECLARE
presp integer;
BEGIN
SELECT e.presupuesto
FROM entidadfinanciera e,recursoeconomico r
WHERE e.cod_entidad_finan=r.cod_entidad_finan AND
e.cod_entidad_finan = new.cod_entidad_finan;
presp=presupuesto;
--controlando que coinsidan los montos presupuestados
if (new.monto_presupuesto!=presp)
then new.monto_presupuesto=pres;
end if;
RETURN NEW;
END;
' LANGUAGE 'plpgsql';
REATE TRIGGER ctrl_presp_finan_rec_eco BEFORE INSERT OR UPDATE ON
recursoeconomico
FOR EACH ROW EXECUTE PROCEDURE ctrl_presp_finan_rec_eco();
FOR EACH ROW EXECUTE PROCEDURE ctrl_presup();
como veran el unico problema q tengo es al hacer corre las lines for
each, gracias a todos
suerte
From | Date | Subject | |
---|---|---|---|
Next Message | Jairo Martín Miguel | 2005-05-30 21:15:21 | Re: ejecutar una consulta creada |
Previous Message | Alvaro Herrera | 2005-05-30 20:51:26 | Re: compilacion y rpms de postgres |