Em 8 de setembro de 2016 17:17, Guimarães Faria Corcete DUTRA, Leandro
<l...@dutras.org> escreveu:
> 2016-09-08 17:15 GMT-03:00 Fabrízio de Royes Mello <fabri...@timbira.com.br>:
>> Um índice parcial é criado para agir em uma
>> porção da tabela de acordo com o predicado definido (aka WHERE), então
>> você pode criar um índice regular ou um "unique" que irá respeitar as
>> tuplas envolvidas na porção definida pelo mesmo.
>
> Obrigado!  Mas acho que ainda merece uma explicação ainda mais clara
> para leigos.

Acontece muito em modelos onde há uma entidade, digamos, PESSOA, que
possui vários, digamos, ENDERECO, mas somente 1 ENDERECO pode ser
marcado como principal para cada PESSOA.

Normalmente recorre-se à triggers para fazer essa validação em banco
(eu, troglodita, faria isso), tendo que fazer um SELECT FOR UPDATE
verificando se já existe um principal para permitir a alteração, o que
foi solucionado simplesmente com um índice único parcial.

... nunca pensei nisso, diga-se de passagem.


TIAGO J. ADAMI
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a