Boa tarde a todos, Eu tenho uma trigger simples para preencher alguns campos da minha tabela a cada alteração de registro:
*CREATE TRIGGER tabela_teste_trigger_ui * * BEFORE INSERT OR UPDATE * * ON public.tabela_teste FOR EACH ROW * * EXECUTE PROCEDURE public.atualiza_campos_ultimos();* *>>>>> Ela aciona uma a função abaixo:* *CREATE OR REPLACE FUNCTION public.atualiza_campos_ultimos( * *)* *RETURNS trigger AS* *$body$* *BEGIN * * * * if (TG_OP = 'INSERT') then* * operacao := 'I';* * else* * operacao := 'A'; * * end if;* * * * new.DATA_ALTERACAO:= current_timestamp;* * new.TIPO_OPERACAO := operacao; * * * * if (TG_OP = 'INSERT') then * * return old;* * else* * return new;* * end if;* * * *END; * *$body$* *LANGUAGE 'plpgsql'* *VOLATILE* *RETURNS NULL ON NULL INPUT* *SECURITY INVOKER* *COST 100;* *Problemática:* Ao executar pelo banco de dados, através de scripts funciona normalmente, no entanto, quando é executada via aplicação usando Delphi 2007 + Zeos 7.0.4 eu recebo o erro: *'0 record(s) updated. Only one record should have been updated.'* * * Em minhas pesquisas e testes realizado pude perceber que o problema esta relacionado com o update dos campos da tabela, fato é que, ao desativar a trigger a aplicação consegue gravar os dados normalmente na tabela. Alguém já passou por isso ou percebeu alguma coisa na função que possa estar ocasionando o problema? Obrigado. -- ------------------------ Rafael M. Naves Analista/Programador (31)9861-4047 (*novo!*) (31)8636-8910 http://www.twitter.com/navesrafael http://www.rafaelnaves.com
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
