Pois é, meu interesse é porque eu tenho funções que fazem inserções e
updates. Como não é possível saber quais colunas o usuário irá atualizar,
então minha função de atualização tem parâmetros para todas as colunas. Mas
em uma tabela com 15 colunas, e o usuário alterar apenas uma coluna de um
registro, a função vai desperdiçar recursos. Pois ela irá atualizar todas
as outras colunas com dados repetidos.
O desafio é atualizar somente as colunas que realmente foram alteradas.
Como exemplo uma função que faz update em uma tabela de CEPs:

http://paste.ubuntu.com/14962205/

Como fazer a função atualizar somente as colunas alteradas?

Em 7 de fevereiro de 2016 12:39, Everton Berz <[email protected]>
escreveu:

> Oi
> aqui tem uma resposta:
>
> http://dba.stackexchange.com/questions/118178/does-updating-a-row-with-the-same-value-actually-update-the-row
>
> Ele também oferece uma possível solução para não realizar estes updates q
> não mudam nada.
>
> Infelizmente carece de fontes oficiais, mas no meu entendimento é aquilo
> ali mesmo. O pessoal aqui da lista que conhece o código-fonte do PostgreSQL
> pode confirmar.
>
>
> --
> Everton
>
> 2016-02-07 12:20 GMT-02:00 Saraiva Silva <[email protected]>:
>
>> Digamos, tenho uma tabela "PESSOA" com as colunas 'nome', 'email' e
>> 'telefone'.
>> Se eu fizer update em um registro e passar os mesmos valores que já
>> estão, ou seja. Digamos que eu tenha o seguinte registro ('João', '
>> [email protected]', '1132322525'). Se eu fizer um update nesse registro e
>> passar exatamente esses mesmos valores, o postgresql tem inteligência para,
>> internamente, ignorar o update pelo fato de não existir mudança?
>> E se eu passar os três valores mas apenas um ser diferente do atual?
>>
>> _______________________________________________
>> 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