Ya - sampai taraf tertentu.
Berapa lama SELECT
memegang kunci bersama tergantung pada tingkat isolasi transaksi:
READ UNCOMMITTED
- tidak ada kunci bersama yang diperoleh sama sekali -UPDATE
tidak diblokirREAD COMMITTED
- kunci bersama diperoleh hanya selama membaca data -UPDATE
mungkin diblokir untuk waktu yang sangat singkatREPEATABLE READ
danSERIALIZABLE
- kunci bersama diperoleh dan disimpan hingga akhir transaksi -UPDATE
diblokir sampaiSELECT
transaksi berakhir
Secara teknis, UPDATE
pernyataan pertama mendapat UPDATE
lock - yang kompatibel dengan kunci bersama (seperti yang digunakan oleh SELECT
) - untuk durasi waktu saat membaca nilai saat ini dari baris yang akan diperbarui.
Setelah selesai, Update
kunci dieskalasi menjadi kunci eksklusif untuk data baru yang akan ditulis ke tabel.