SELECT FOR UPDATE khóa selected rows để transaction khác không update/delete chúng cho đến khi transaction hiện tại commit/rollback. Nó phù hợp khi cần read-modify-write an toàn như trừ tồn kho hoặc xử lý job queue.
Ví dụ:
sql
BEGIN;
SELECT * FROM inventory WHERE sku = 'A' FOR UPDATE;
UPDATE inventory SET stock = stock - 1 WHERE sku = 'A';
COMMIT;Cần giữ transaction ngắn.
Lock lâu gây blocking, timeout và deadlock risk.