2012/11/5 Edson Lidorio <[email protected]>

> Boa tarde,
>
> Estou com um probleminha na minha function, o segundo comando, o update
> não esta sendo executado!
> O que esta errado?
>
>
> CREATE OR REPLACE FUNCTION fluxo_caixa_contas_pag()
>   RETURNS trigger AS
> $BODY$
> BEGIN
>
>  IF (new.cd_conta is not NULL) and (new.dt_pgto is not NULL) and
>  (new.vlr_pgto is not NULL) and (new.fg_paga = 'S') THEN
>  INSERT INTO fluxcaix(
>  cd_fil,dt_mov, fg_tipo_lcto, fg_forma_lcto, fg_origem,
>  no_origem, historico, no_doc, vlr_doc, dt_usuinc, nm_usuinc,
>  dt_usualt, nm_usualt,fg_origem_apto)
>  VALUES (
>  new.cd_fil,
>  new.dt_pgto,
>  'S',
>  new.fg_tipo_pgto,
>  'A',
>  new.cd_titulo,
>  new.historico,
>  new.no_doc,
>  new.vlr_pgto,
>  new.dt_usuinc,
>  new.nm_usuinc,
>  new.dt_usualt,
>  new.nm_usualt,
>  new.fg_origem);
>  RETURN NEW;
>  END IF;
>  RETURN NULL;
>
>  update contapag set
>  fg_paga = 'S'
>  where cd_titulo = NEW.cd_titulo;
>
> END;
> $BODY$
>   LANGUAGE plpgsql VOLATILE
>   COST 100;
> ALTER FUNCTION fluxo_caixa_contas_pag()
>   OWNER TO postgres;
>
> O update está depois do RETURN, ou seja, não está sendo executado. Para
que todas as operações sejam executadas, as mesmas devem estar antes do
RETURN;

Tome cuidado com RETURN NULL, pois se não me engano, o return null "NÃO"
executa a operação a qual foi disparada a trigger.

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

Responder a