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.:* eenriq...@cav.desoft.cu <mailto:eenriq...@cav.desoft.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

Responder a