Saludos Osmany y Anthony, El 11/12/17 a las 11:52, Anthony Sotolongo escribió: > HOla Osmany, has intentado colocar el return null; luego de cada insert > (para salir de la función) y creo que eso puede evitar que se inserte > recursivamente. > > pues al final veo un return new;
Ese no es el problema, AFAICS >> este es el trigger: >> >> CREATE TRIGGER insertar_rol >> BEFORE INSERT >> ON security.users >> FOR EACH ROW >> EXECUTE PROCEDURE security.rol_insert2(); [snip] >> ELSE >> INSERT INTO security.users( >> id, username, nombre, pass, ci, ultimav, rol_id, edad, >> sexo_id,correo, is_active, imagen) >> VALUES (default, NEW.username,NEW.nombre, NEW.pass, NEW.ci, >> NEW.ultimav, NEW.rol_id, NEW.edad, NEW.sexo_id,NEW.correo, >> NEW.is_active, NEW.imagen); >> END CASE; Fijate que en el ELSE del CASE estas volviendo a insertar la fila. Aquí es donde se genera la recursion. Acá en lugar de insertar deberías simplemente retornar NEW, y en los otros cases retornar NULL (a menos que quieras que se inserte la fila en security.users y en la tabla correspondiente al caso en el que entra en el CASE. Espero te ayude.... y buenos días ;) -- Martín Marqués http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services