Có - ở một mức độ nào đó.
Bao lâu một SELECT
giữ khóa dùng chung tùy thuộc vào mức độ cô lập của giao dịch:
-
READ UNCOMMITTED
- không có khóa dùng chung nào được lấy -UPDATE
không bị chặn -
READ COMMITTED
- khóa chia sẻ được lấy chỉ trong khoảng thời gian đọc dữ liệu -UPDATE
có thể bị chặn trong một khoảng thời gian rất ngắn -
REPEATABLE READ
vàSERIALIZABLE
- khóa chia sẻ được mua và giữ cho đến khi kết thúc giao dịch -UPDATE
bị chặn cho đến khiSELECT
giao dịch kết thúc
Về mặt kỹ thuật, UPDATE
đầu tiên câu lệnh nhận được một UPDATE
khóa - tương thích với khóa dùng chung (như được sử dụng bởi SELECT
) - trong khoảng thời gian trong khi nó đang đọc các giá trị hiện tại của các hàng sẽ được cập nhật.
Sau khi hoàn tất, hãy Update
khóa được nâng cấp thành khóa độc quyền để dữ liệu mới được ghi vào bảng.