Trung BìnhPostgreSQL iconPostgreSQL

`SELECT FOR UPDATE` dùng khi nào?

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.

Xem toàn bộ PostgreSQL cùng filter theo level & chủ đề con.

Mở danh sách PostgreSQL