Re: DUDA ACERCA DE TRIGGER

From: Emanuel Calvo <3manuek(at)gmail(dot)com>
To: Maria Antonieta Ramirez <maramirez(at)ulsaneza(dot)edu(dot)mx>, FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: DUDA ACERCA DE TRIGGER
Date: 2016-09-30 16:43:12
Message-ID: CAJeAsn8Fcjfu0zS_5-vcn1q1TYxm3FLH29hk++4b7nQKw1k=_A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Estas generando una llamada infinita al disparador, con eso no hay stack
que aguante.

Si lo que estás queriendo hacer es manipular los argumentos NEW para
checkeo (como veo en tu función) u otras cosas,
no es necesario usar un INSERT, solo retorna NEW.* . Aún así, lo que estás
queriendo hacer es algo que
ya se implementa a través de una CONSTRAINT con UNIQUE, a menos que esté
omitiendo algo.

On Thu, Sep 29, 2016 at 9:05 PM Maria Antonieta Ramirez <
maramirez(at)ulsaneza(dot)edu(dot)mx> wrote:

> Buen dia..
>
>
> solicito su ayuda para una duda que tengo ..
>
>
> hice un trigger en el que antes de insertar un registro valide si existe
> una matricula para lo cual hice lo siguiente.
>
>
>
>
> CREATE OR REPLACE FUNCTION educaciondistancia.insert_matricula_maestria()
>
> RETURNS trigger AS
>
> $BODY$
>
> DECLARE
>
> matricula record ;
>
> BEGIN
>
>
> SELECT * INTO matricula FROM educaciondistancia.alumnos WHERE
> matriculamaestria = NEW.matriculamaestria;
>
> IF NOT FOUND THEN
>
> INSERT INTO educaciondistancia.alumnos (
>
> nombre , apellidopaterno , apellidomaterno, sexo , fechanac
> , lugarnac , nacionalidad , calle, numext, numint, colonia ,ciudad,
> municipio,estado,pais,cp, telefono,
>
> telcelular,ocupacion,estatus,
> email,nickname,foto,fecharegistro,matriculamaestria,aspirantemaestria,grupo,
> folioaspirante)
>
> VALUES (
>
> NEW.nombre , NEW.apellidopaterno , NEW.apellidomaterno,
> NEW.sexo , NEW.fechanac , NEW.lugarnac , NEW.nacionalidad , NEW.calle,
> NEW.numext, NEW.numint, NEW.colonia , NEW.ciudad, NEW.municipio,
> NEW.estado, NEW.pais, NEW.cp, NEW.telefono, NEW.
>
> telcelular, NEW.ocupacion, NEW.estatus, NEW.email,
> NEW.nickname, NEW.foto, NEW.fecharegistro, NEW.matriculamaestria,
> NEW.aspirantemaestria, NEW.grupo, NEW.folioaspirante);
>
>
> END IF;
>
> RETURN NEW;
>
> END;
>
> $BODY$
>
> LANGUAGE plpgsql VOLATILE
>
> COST 100;
>
> ALTER FUNCTION educaciondistancia.insert_matricula_maestria()
>
> OWNER TO postgres;
>
>
>
>
> CREATE TRIGGER tr_insert_matricula_maestria
>
> BEFORE INSERT
>
> ON educaciondistancia.alumnos
>
> FOR EACH ROW
>
> EXECUTE PROCEDURE educaciondistancia.insert_matricula_maestria();
>
>
>
>
>
>
>
> ******
>
>
> cuando hice pruebas por medio de pgadmin insertando mi registro , no me
> mando ningun problema. pero el dia de hoy lo probe de nuevo y en uno de los
> intentos de las pruebas me mando el siguiente mensaje:
>
>
>
>
>
>
> me podrian apoyar en saber a que se refiere.
>
>
> Por su atencion muchas gracias!!!
>
>
>
>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Hellmuth Vargas 2016-09-30 16:47:44 Re: DUDA ACERCA DE TRIGGER
Previous Message Gilberto Castillo 2016-09-29 20:00:23 Re: [MASSMAIL]PgDay Bolivia 2016