Hola Alvaro, :)
Entonces debo calcular saldo_final desde la aplicación, digamos para el
caso id_ncu=1, y entonces que se ejecute el disparador en el otro caso, es
decir, cuando se inserte un rgistro con id_ncu=2?. Esta es la tónica de
operación de los disparadores?.
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"
--
Saludos,
Luis Esteban
--
Este mensaje le ha llegado mediante el servicio de correo electronico que
ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema
Nacional de Salud. La persona que envia este correo asume el compromiso de usar
el servicio a tales fines y cumplir con las regulaciones establecidas
Infomed: http://www.sld.cu/
--
TIP 5: ¿Has leído nuestro extenso FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html