From: | Felipe de Jesús Molina Bravo <felipe(dot)molina(at)inegi(dot)gob(dot)mx> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: funcionamiento diferente en triggers |
Date: | 2007-01-30 19:04:30 |
Message-ID: | 1170183870.7938.29.camel@fjmb |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Lo probe tal y como comentas (return new) y yo obtengo el mismo
resultado (no actualiza us = '2').
En realidad ese "return null" se coloca para evitar algun error al
anclar el trigger, ya que solamente debe ser al INSETAR o al BORRAR ...
si hubiese un UPDATE tendría que abortarse la operación
Voy a seguir investigando y si lo resuelvo lo estaré posteando
Saludos y gracias por todo
El mar, 30-01-2007 a las 13:37 -0300, Alvaro Herrera escribió:
> Felipe de Jesús Molina Bravo escribió:
>
> > create or replace function f_lugar() returns trigger as '
> > begin
> > if TG_OP = ''INSERT'' THEN
> > update producto set contador = contador + 1 where
> > idp = new.idp;
> > return new;
> > ELSIF TG_OP = ''DELETE'' THEN
> > update producto set contador = contador - 1 where
> > idp = old.idp;
> > return old;
> > end if;
> ** > return null;
> > end;
> > ' language 'plpgsql';
>
> La linea con los asteriscos debe ser "return new". Si haces RETURN
> NULL, el trigger tiene el efecto que mencionas: anula el efecto del
> UPDATE. No entiendo por que "funcionaba" en 7.3.
>
From | Date | Subject | |
---|---|---|---|
Next Message | Fernando Zambrano Cruz | 2007-01-30 20:28:05 | Problema con autentificacion |
Previous Message | Patricio Cifuentes Ithal | 2007-01-30 17:10:00 | RE: postgres+postgis |