O modo que eu vejo mais fácil, é fazer um IF para cada tipo de oepração (INSERT, DELETE, UPDATE), usando os atributos da trigger. No caso de update, tornar as strings de NEW e OLD em arrays. Fazer um FOR para um deles, e comparar ambos (IF valor_antigo[i] != valor_novo[i]), concatenando em uma terceira variável apenas os resultados que forem diferentes. Deve-se tomar cuidado ao converter em array, pois as strings de NEW e OLD podem vir com virgulas consecutivas (como comentei antes), e devem ser tratadas.
Atenciosamente, Pedro Cavalheiro Em 2 de setembro de 2011 10:35, Pedro Costa <[email protected]> escreveu: > > Pedro, isso seria óptimo, será que podes dizer-me como? > > > obrigado > > > > > > > > > On 02-09-2011 13:22, Pedro Cavalheiro wrote: >> Entendo... mas você queria gravar os dados neste registro, não é? É >> posssível fazer uma repetição para comparar os dados novos e antigos >> (no caso de update), gravando apenas o que mudou. >> >> Atenciosamente, >> Pedro Cavalheiro >> >> Em 2 de setembro de 2011 09:16, Pedro Costa<[email protected]> >> escreveu: >>> Obrigado pedro já entendi..já criei para duas tabelas....Só o problema >>> que os campos old e new ficam case elegíveis pois o campo das >>> coordenadas é mesmo muito longo >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> On 02-09-2011 13:11, Pedro Cavalheiro wrote: >>>> Pedro, >>>> >>>>>> seria ideal o trigger disparar por cada tabela da base de dados uma vez >>>>>> que nem sempre os nomes são iguais, será que sabes como fazer isso? e >>>>>> que apareça um novo campo chamado "tabela" para que seja possível saber >>>>>> a alteração a que tabela se refere... >>>> Dê uma olhada aqui: >>>> http://www.postgresql.org/docs/9.0/static/plpgsql-trigger.html >>>> Documentação de triggers com algums parâmetros internos (como nome da >>>> tabela alterada, valores antes e depois da alteração, entre outros) >>>> É necessário criar uma trigger por tabela. >>>> >>>>>> Os campos dados_novos e dados_antigos aparecem >>>>>> codificados (ou são apenas as cordenadas?) >>>> Estas 2 colunas recebem os valores de OLDe NEW da trigger, que são os >>>> dados antes e depois da alteração, respectivamente. >>>> Os valores são separados por virgula e, se não me engane, no caso de >>>> campo vazio o registro fica semelhante a "valor1,,valor3" (2 vírgulas >>>> consecutivas, visto que o "valor2" não foi enviado). >>>> >>>> Atenciosamente, >>>> Pedro Cavalheiro >>>> >>>> Em 1 de setembro de 2011 17:03, Guimarães Faria Corcete DUTRA, Leandro >>>> <[email protected]> escreveu: >>>>> 2011/9/1 Osvaldo Kussama<[email protected]>: >>>>>> Em 1 de setembro de 2011 12:01, Leandro Guimarães Faria Corce DUTRA >>>>>> <[email protected]> escreveu: >>>>>>> Le 2011-S-1 11h13, Pedro Costa a écrit : >>>>>>>> No campo da data não aparece a hora, coloquei tipo "date" existe outro >>>>>>>> para dar a hora? >>>>>>> Datetime. >>>>>> Provavelmente você quis dizer: timestamp. >>>>> Mea culpa. >>>>> >>>>> >>>>> >>>>> -- >>>>> Skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra >>>>> +55 (61) 3546 7191 Google Talk: xmpp:[email protected] >>>>> +55 (11) 9406 7191 MSNIM:[email protected] >>>>> sip:[email protected] ICQ: AIM:GoIM?screenname=61287803 >>>>> _______________________________________________ >>>>> pgbr-geral mailing list >>>>> [email protected] >>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>>> >>>> _______________________________________________ >>>> pgbr-geral mailing list >>>> [email protected] >>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> _______________________________________________ >>> pgbr-geral mailing list >>> [email protected] >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
