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
