From: | Ever Daniel Barreto Rojas <ebarreto(at)nexusit(dot)com(dot)py> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re[2]: mi primer trigger |
Date: | 2007-10-16 21:07:43 |
Message-ID: | 1638595755.20071016170743@nexusit.com.py |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
alvaro:
El 16/10/2007 a las 03:46 p.m., escribiste:
>> El 16/10/2007 a las 02:36 p.m., escribiste:
>> > CREATE OR REPLACE FUNCTION "public"."salida_hilos" () RETURNS trigger AS
>> > $body$
>> > BEGIN
>> > update vihilos2 set peso_salida = peso_salida + new.peso_neto
>> > where idvihilo = new.idvihilo And itemvi = new.itemvi;
>> > RETURN NULL;
>> > END;
>> > $body$
>> > LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>>
>> digo yo... no deberías de hacer RETURN NEW en vez de RETURN NULL?
> No, porque es un trigger AFTER. En un trigger AFTER, el valor de
> retorno es ignorado (a diferencia de un trigger BEFORE, en el cual el
> valor de retorno es la tupla que se insertará en la tabla, en el caso de
> un trigger BEFORE INSERT).
estás en lo cierto... creo que no atendí si era un trigger AFTER o
BEFORE... (aunque ignoraba que en el AFTER el retorno es ignorado)
> Sin embargo ese es precisamente el problema del trigger. En vez de un
> trigger AFTER, deberia estar usando un trigger BEFORE. Y en vez de
> hacer un UPDATE, deberia estar modificando NEW. O sea algo asi como
> NEW.peso_salida = NEW.peso_salida + NEW.peso_neto;
> RETURN NEW;
chanchada mía... ahora que describiste esto me doy cuenta de que en
realidad está tratando de hacerlo en la misma tabla (eso pasa
cuando uno se apura en contestar)
pero también, está haciendo mal su trigger, ya que en su mail dice
que lo que desea es que al insertar un nuevo registro en vehilos2,
aumentar el peso en el campo peso_salida de _la tabla vihilos_, en
cuyo caso, el update debería de hacerlo en la tabla vihilos y no
vihilos2... (o yo me mareé y entendí todo mal)...
Cordiales saludos,
-------------------
Ever Daniel Barreto Rojas
e.mail: ebarreto(at)nexusit(dot)com(dot)py :: Nexus Information Technologies
web: www.nexusit.com.py
16/10/2007 04:59 p.m.
---------------------
Always try to be modest and be proud of it!
- For those who take life too seriously
---------------------
From | Date | Subject | |
---|---|---|---|
Next Message | Ever Daniel Barreto Rojas | 2007-10-16 21:10:10 | Re[2]: mi primer trigger |
Previous Message | Alvaro Herrera | 2007-10-16 19:46:03 | Re: mi primer trigger |