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
