PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Maneira correta de selecionar e atualizar o SQL


Primeiro, no mínimo você deve estar fazendo um SELECT ... FOR UPDATE então você bloqueia as linhas em relação a outros SELECT ... FOR [SHARE|UPDATE] Acesso. Você deve fazer isso dentro de uma transação e manter essa transação até atualizar a última linha e commit .

As linhas que você SELECT ... FOR UPDATE não bloqueado contra SELECT normal; eles ainda podem ser lidos por outras transações que não estão usando FOR UPDATE ou FOR SHARE .

Melhor ainda, tente reformular a coisa toda como um UPDATE ... FROM ou outra operação baseada em conjunto onde você faz todo o trabalho em uma única consulta. Ele geralmente terá um desempenho muito melhor do que um SELECT ... FOR UPDATE seguido por um fluxo de UPDATE s.