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

Responder a