Em 08/02/2013 10:52, Edson - Lista escreveu:
> Bom dia pessoal,
>
> Não sei que esta errado com a minha function, ao fazer o update ela
> atualizando os valor com null.
> O que pode estar errado?,
> Segue abaixo:
>
> CREATE OR REPLACE FUNCTION public.baixa_saldo_conta_pagar (
> )
> RETURNS trigger AS
> $body$
>        BEGIN
>           IF (TG_OP = 'INSERT') THEN
>              UPDATE contas SET
>              vlr_saldo_sai = (vlr_saldo_sai + NEW.vlr_pgto),
>              vlr_saldo = (vlr_saldo - NEW.vlr_pgto),
>              dt_usualt = now(),
>              nm_usualt = new.nm_usualt
>              WHERE cd_conta = NEW.cd_conta;
>              RETURN NEW;
>           END IF;
>         IF (TG_OP = 'UPDATE') THEN
>             UPDATE contas
>             SET vlr_saldo_sai = ((vlr_saldo_sai - OLD.vlr_pgto) +
> NEW.vlr_pgto),
>             vlr_saldo = ((vlr_saldo + OLD.vlr_pgto) - NEW.vlr_pgto),
>             nm_usualt = new.nm_usualt
>             WHERE cd_conta = NEW.cd_conta;
>             RETURN NEW;
>         END IF;
>         IF (TG_OP = 'DELETE') THEN
>             UPDATE contas
>           set vlr_saldo_sai = (vlr_saldo_sai - OLD.vlr_pgto),
>                   vlr_saldo = (vlr_saldo + OLD.vlr_pgto),
>                   dt_usualt = OLD.dt_usualt,
>                   nm_usualt = OLD.nm_usualt
>               where cd_conta = OLD.cd_conta;
>               RETURN OLD;
>         END IF;
>        END;
> $body$
> LANGUAGE 'plpgsql'
> VOLATILE
> CALLED ON NULL INPUT
> SECURITY INVOKER
> COST 100;
>
> []'s
>
> Edson
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>

Provavelmente existe um valor nulo, utilize o COALESCE(vlr_saldo,0) + 
COALESCE(old.vlr_pgto,0).


_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a