From: | Paulo Nuñez Valenzuela <paulonunex(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Buenos dias lista |
Date: | 2009-01-26 14:28:57 |
Message-ID: | d16457e40901260628k543e67d5k5731799e546ae3bb@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Amigos:
Soy nuevo en esta lista me gustaria si me pueden ayudar con el siguiente
tema.
tengo un trigger creado en Oracle y ahora estamos migrando a Postgresql,
bueno mi funcion disparadora es la siguiente
CREATE OR REPLACE FUNCTION SUMA_INGRESO() RETURNS trigger AS $$
BEGIN
IF (TG_OP = 'INSERT') OR (TG_OP = 'UPDATE') THEN
if new.CGINGRESO_VNETO != 0 then
update cg_ingegre
set CGINGEGRE_TINGRE = CGINGEGRE_TINGRE + new.CGINGRESO_VNETO
where mgempre_cod = new.MGEMPRE_COD
and CGPRODUCTOR_IDR = new.CGPRODUCTOR_IDR
and CGFPROC_AAAA = new.CGFPROC_AAAA
and CGFPROC_MM = new.CGFPROC_MM;
end if;
end if;
IF (TG_OP = 'DELETE') OR (TG_OP = 'UPDATE') THEN
if old.CGINGRESO_VNETO != 0 then
update cg_ingegre
set CGINGEGRE_TINGRE = CGINGEGRE_TINGRE - old.CGINGRESO_VNETO
where mgempre_cod = old.MGEMPRE_COD
and CGPRODUCTOR_IDR = old.CGPRODUCTOR_IDR
and CGFPROC_AAAA = old.CGFPROC_AAAA
and CGFPROC_MM = old.CGFPROC_MM;
end if;
end if;
end;
$$ LANGUAGE plpgsql;
*el trigger que lo llama es:
* CREATE TRIGGER "ICG_INGRESO"
AFTER INSERT OR UPDATE OR DELETE
ON cg_ingreso
FOR EACH ROW
EXECUTE PROCEDURE suma_ingreso();
Este trigger no es mas que una suma ascendente.
De antemano muchas gracias amigos
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2009-01-26 14:47:04 | función disparadora (era Re: Buenos dias lista) |
Previous Message | Calabaza | 2009-01-26 13:31:51 | Re: [pgsql-es-ayuda] Función que retorna la posición de un caracter dentro de una cadena |