Lists: | pgsql-es-ayuda |
---|
From: | "Esneiker Enriquez Cabrera" <eenriquez(at)cav(dot)desoft(dot)cu> |
---|---|
To: | "'POSTGRES'" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | problema con trigger |
Date: | 2015-03-10 19:16:43 |
Message-ID: | 006001d05b66$be88e9e0$3b9abda0$@desoft.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Hola amigos.
Estoy tratando de hacer un trigger que en la inserción o la actualización de
una tabla me ejecute una función pero al hacer insert o update me da el
error:
límite de profundidad de stack alcanzado
ahora no me doy cuenta de qué es lo que estoy haciendo mal, espero que
alguien me pueda decir.
El código es el siguiente:
CREATE OR REPLACE FUNCTION actualizar_estado()
RETURNS trigger AS
$BODY$
declare cadena character varying(500);
BEGIN
cadena = '';
select * into cadena from concatenar_nombre_estado(NEW.id);
update nmestado set concatenado = cadena where id=NEW.id;
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION actualizar_estado() OWNER TO postgres;
CREATE TRIGGER ti_nmestado
AFTER INSERT or UPDATE
ON nmestado
FOR EACH ROW
EXECUTE PROCEDURE actualizar_estado();
Saludos,
Ing. Esneiker Enriquez Cabrera
Esp. B en Ciencias Informáticas
Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila.
Cuba.
Telf.: 53 33 22 8971, email.: <mailto:eenriquez(at)cav(dot)desoft(dot)cu>
eenriquez(at)cav(dot)desoft(dot)cu
From: | Anthony Sotolongo León <asotolongo(at)gmail(dot)com> |
---|---|
To: | Esneiker Enriquez Cabrera <eenriquez(at)cav(dot)desoft(dot)cu>, 'POSTGRES' <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: problema con trigger |
Date: | 2015-03-10 20:12:36 |
Message-ID: | 54FF5034.6050007@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
creo que estas actualizando la tabla que tiene el triggers dentro de la
funcion , mira esta URL
http://www.depesz.com/2012/02/01/waiting-for-9-2-trigger-depth/
explican sobre el tema
saludos
El 10-03-2015 a las 16:16, Esneiker Enriquez Cabrera escribió:
>
> Hola amigos.
>
> Estoy tratando de hacer un trigger que en la inserción o la
> actualización de una tabla me ejecute una función pero al hacer insert
> o update me da el error:
>
> límite de profundidad de stack alcanzado
>
> ahora no me doy cuenta de qué es lo que estoy haciendo mal, espero que
> alguien me pueda decir.
>
> El código es el siguiente:
>
> CREATE OR REPLACE FUNCTION actualizar_estado()
>
> RETURNS trigger AS
>
> $BODY$
>
> declare cadena character varying(500);
>
> BEGIN
>
> cadena = '';
>
> select * into cadena from concatenar_nombre_estado(NEW.id);
>
> update nmestado set concatenado = cadena where id=NEW.id;
>
> RETURN NEW;
>
> END;
>
> $BODY$
>
> LANGUAGE 'plpgsql' VOLATILE
>
> COST 100;
>
> ALTER FUNCTION actualizar_estado() OWNER TO postgres;
>
> CREATE TRIGGER ti_nmestado
>
> AFTER INSERT or UPDATE
>
> ON nmestado
>
> FOR EACH ROW
>
> EXECUTE PROCEDURE actualizar_estado();
>
> Saludos,
>
> */Ing. Esneiker Enriquez Cabrera/**
> **Esp. B en Ciencias Informáticas*
>
> Desoft en Ciego de Ávila. Joaquín de Agueroesq. Calle 2. Ciego de
> Ávila. Cuba.
> *Telf.:* 53 33 22 8971, *email.:* eenriquez(at)cav(dot)desoft(dot)cu
> <mailto:eenriquez(at)cav(dot)desoft(dot)cu>
>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de
> firmas de virus 11288 (20150308) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Esneiker Enriquez Cabrera <eenriquez(at)cav(dot)desoft(dot)cu> |
Cc: | 'POSTGRES' <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: problema con trigger |
Date: | 2015-03-10 20:17:27 |
Message-ID: | 20150310201727.GG3291@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Esneiker Enriquez Cabrera escribió:
> Hola amigos.
>
> Estoy tratando de hacer un trigger que en la inserción o la actualización de
> una tabla me ejecute una función pero al hacer insert o update me da el
> error:
>
> límite de profundidad de stack alcanzado
Oh, FFS.
Usa un trigger BEFORE, y modifica en el mismo trigger el campo en el
registro NEW, en lugar de hacer un update nuevo.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From: | "Esneiker Enriquez Cabrera" <eenriquez(at)cav(dot)desoft(dot)cu> |
---|---|
To: | "'Alvaro Herrera'" <alvherre(at)2ndquadrant(dot)com> |
Cc: | "'POSTGRES'" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: problema con trigger |
Date: | 2015-03-11 13:38:30 |
Message-ID: | 001801d05c00$aa96a860$ffc3f920$@desoft.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Muchas gracias a todos por su ayuda.
Saludos,
Ing. Esneiker Enriquez Cabrera
Esp. B en Ciencias Informáticas
Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila.
Cuba.
Telf.: 53 33 22 8971, email.: eenriquez(at)cav(dot)desoft(dot)cu
-----Mensaje original-----
De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Alvaro Herrera
Enviado el: martes, 10 de marzo de 2015 16:17
Para: Esneiker Enriquez Cabrera
CC: 'POSTGRES'
Asunto: Re: [pgsql-es-ayuda] problema con trigger
Esneiker Enriquez Cabrera escribió:
> Hola amigos.
>
> Estoy tratando de hacer un trigger que en la inserción o la actualización
de
> una tabla me ejecute una función pero al hacer insert o update me da el
> error:
>
> límite de profundidad de stack alcanzado
Oh, FFS.
Usa un trigger BEFORE, y modifica en el mismo trigger el campo en el
registro NEW, en lugar de hacer un update nuevo.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 11288 (20150308) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 11288 (20150308) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda