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"
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
http://archives.postgresql.org/pgsql-es-ayuda