PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Manière appropriée de sélectionner et de mettre à jour SQL

D'abord, au minimum vous devriez faire un SELECT ... FOR UPDATE donc vous verrouillez les lignes contre d'autres SELECT ... FOR [SHARE|UPDATE] accéder. Vous devez le faire à l'intérieur d'une transaction et maintenir cette transaction jusqu'à ce que vous mettiez à jour la dernière ligne et commit .

Les lignes que vous SELECT ... FOR UPDATE pas verrouillé contre le SELECT normal; ils sont toujours lisibles pour les autres transactions qui n'utilisent pas FOR UPDATE ou FOR SHARE .

Mieux encore, essayez de reformuler le tout en tant que UPDATE ... FROM ou toute autre opération basée sur un ensemble où vous effectuez tout le travail en une seule requête. Il fonctionnera généralement beaucoup mieux qu'un SELECT ... FOR UPDATE suivi d'un flux de UPDATE s.