Re: Dudas con trigger...

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Luis Esteban <esteban(at)princesa(dot)pri(dot)sld(dot)cu>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Dudas con trigger...
Date: 2010-02-10 21:07:52
Message-ID: 20100210210752.GU4922@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Luis Esteban escribió:
> Hola a todos, :)
>
> Me estoy ensayando con los disparadores(triggers) en una aplicación
> contable en linux(PostgreSQL+Python) pero tengo dudas pues nunca he
> hecho alguno.
>
> Esta es la tabla a la cual se le insertará datos como: cuenta,
> subcuenta, id_ncu, saldo_inicial, debito o credito, pero quiero que
> el disparador calcule el saldo_final y se lo inserte. Esto dependerá
> de si la naturaleza de la cuenta es dedudora(id_ncu=1) o
> acreedora(id_ncu=2). Quiero que cuando la aplicación inserte los
> datos en la tabla, el disparador calcule el saldo_final en función
> de los datos insertados.

No, normalmente lo que debes hacer en el trigger es
NEW.saldo_final = saldo_inicial + debito - credito
es decir, modificas el registro que está insertando.

No debes hacer un nuevo insert, porque de esa forma entras en un loop
infinito: ese nuevo insert lanzaría el trigger nuevamente, y ese otro
más, y así sucesivamente.

Al final de la función debes hacer "RETURN NEW"

--
Alvaro Herrera Vendo parcela en Valdivia: http://rie.cl/?a=255568
Y dijo Dios: "Que sea Satanás, para que la gente no me culpe de todo a mí."
"Y que hayan abogados, para que la gente no culpe de todo a Satanás"

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Luis Esteban 2010-02-10 21:30:58 Re: Dudas con trigger...
Previous Message Luis Esteban 2010-02-10 21:01:57 Dudas con trigger...