| 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: | Whole Thread | Raw Message | 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... |