Muchísimas gracias, ya corrió el trigger, efectivamente me estaba faltando en () y :=
------------------------------------------- Ing. Maria Virginia Porras B. ------------------------------------------- El 4 de mayo de 2012 17:21, Alejandro Carrillo <faster...@yahoo.es>escribió: > Que muñequito tan simpático. > > Puedes usar: > NEW.venceultimoplan := (SELECT (date(DATE(pe.fecha) + pq.paquete) - > interval '1 day') FROM pagos_empresas pe, paquetes pq WHERE pq.paqid = > pe.paqid and pe.empid = NEW.empid); > > ------------------------------ > *De:* Virginia <mavi...@gmail.com> > *Para:* Ayuda <pgsql-es-ayuda@postgresql.org> > *Enviado:* Viernes 4 de Mayo de 2012 16:29 > *Asunto:* [pgsql-es-ayuda] triggers > > Buenas tardes!!!! Quisiera me orientaran con algo... > > Estoy tratando de hacer el siguiente trigger > > -- Function: upd_last_paquete() > > -- DROP FUNCTION upd_last_paquete(); > > CREATE OR REPLACE FUNCTION upd_last_paquete() > RETURNS trigger AS > $BODY$ > BEGIN > > NEW.venceultimoplan = SELECT (date(DATE(pe.fecha) + pq.paquete) - > interval '1 day') FROM pagos_empresas pe, paquetes pq WHERE pq.paqid = > pe.paqid and pe.empid = NEW.empid; > UPDATE empresas SET ultimoplan = NEW.paqid(), iniciaultimoplan = > NEW.fecha, venceultimoplan = NEW.venceultimoplan WHERE empid = NEW.empid; > > return NEW; > > END; > $BODY$ > LANGUAGE 'plpgsql' VOLATILE > COST 100; > ALTER FUNCTION upd_last_paquete() OWNER TO empleate; > > -- Trigger: upd_ultimo_paquete on pagos_empresas > > -- DROP TRIGGER upd_ultimo_paquete ON pagos_empresas; > > CREATE TRIGGER upd_ultimo_paquete > AFTER UPDATE > ON pagos_empresas > FOR EACH ROW > EXECUTE PROCEDURE upd_last_paquete(); > > > y me da error, no se cómo hacer para que el select me traiga el resultado > de esa operación sobre el campo de otra tabla y me lo actualice sobre la > tabla correspondiente. > > Gracias!!!! > > >
<<338.gif>>