Código PHP:
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
[COLOR=Black]FOR EACH ROW EXECUTE PROCEDURE ctrl_presp_finan_rec_eco();
FOR EACH ROW EXECUTE PROCEDURE ctrl_presup();[/COLOR]
suerte