Pertama, di minimal anda harus melakukan SELECT ... FOR UPDATE jadi Anda mengunci baris dengan SELECT ... FOR [SHARE|UPDATE] mengakses. Anda harus melakukan ini di dalam transaksi dan menahan transaksi itu sampai Anda memperbarui baris terakhir dan commit .
Baris yang Anda SELECT ... FOR UPDATE tidak terkunci terhadap SELECT normal normal; mereka masih dapat dibaca oleh transaksi lain yang tidak menggunakan FOR UPDATE atau FOR SHARE .
Lebih baik lagi, coba ulangi semuanya sebagai UPDATE ... FROM atau operasi berbasis kumpulan lainnya di mana Anda melakukan semua pekerjaan dalam satu kueri. Secara umum kinerjanya jauh lebih baik daripada SELECT ... FOR UPDATE diikuti oleh aliran UPDATE s.