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

Responder a