Valor de campo no se actualiza en trigger

From: jvenegasperu <jvenegasperu(at)gmail(dot)com>
To: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Valor de campo no se actualiza en trigger
Date: 2018-11-14 18:06:54
Message-ID: CA+KjtGeN3LQHWUxMF02QRvMYGMik3ddPTjO1O5Mmhx+X37CsCQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buen dia a todos
tengo un trigger sobre una tabla que llame limpieza_colector este funciona
bien excepto la ultima instruccion aqui el codigo

CREATE TRIGGER limpieza3
AFTER INSERT OR UPDATE
ON public.limpieza_colector
FOR EACH ROW
EXECUTE PROCEDURE public.limpieza3();

CREATE OR REPLACE FUNCTION public.limpieza3()
RETURNS trigger AS
$BODY$
DECLARE
tot numeric(7,2);
r record;
r2 record;
i float;
BEGIN

select into r radio_influencia from limpieza_colector where gid =
NEW.gid;

i:= r.radio_influencia;

--create temp table tabb as
truncate opl_tabb;
insert into opl_tabb(row_number,gid,st_centroid,b)
select
v.row_number,
l.gid,st_centroid(st_intersection(v.the_geom,st_buffer(l.the_geom,i))),
st_distance(st_centroid(st_intersection(v.the_geom,st_buffer(l.the_geom,i))),st_startpoint(st_linemerge(v.the_geom)))
as b
from al_buzon_geo l join
opl_taba v on st_intersects(v.the_geom,st_buffer(l.the_geom,i)) and
st_buffer(v.the_geom,i+1) && l.the_geom;

--aqui un serie de consultas en otras tablas

--forma 1
select into r2 sum(ml_lineales) tot from padron_limpieza7 where
limpieza_id = NEW.gid;
NEW.total := r2.tot;

--forma 2
NEW.total := (select sum(ml_lineales) from padron_limpieza7 where
limpieza_id = NEW.gid);

--forma 3
NEW.total := 1000;

RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION public.limpieza3()
OWNER TO postgres;

El hecho es que he intentado actualizar el campo total de las 3 formas que
se ven en el codigo el trigger es bastante largo hago una serie de
consultas en otras tablas y actualizaciones todas funciona bien excepto de
actualizar el campo total de la tabla limpieza_colector

lo que ocurre aqui es que desde qgis se dibuja una linea y al momento de
grabar ejecuto el trigger alguien tiene alguna experiencia de postgres con
qgis.

Que me de alguna luz porque el trigger no actualiza el campo en la tabla a
que podria deberse si todo lo demas funciona sin problemas

Atte

--
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Anthony Sotolongo 2018-11-14 18:17:45 Re: Valor de campo no se actualiza en trigger
Previous Message Roberto Andrade Fonseca 2018-11-13 22:23:40 Re: Duda en consolidación de información