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"
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... |