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.