select for update
BEGIN; -- transaction starts
SELECT * FROM kv WHERE k = 1 FOR UPDATE; -- rows are chosen and locked
UPDATE kv SET v = v + 5 WHERE k = 1; -- update on locked rows happened
COMMIT; -- transaction commitedLast updated
BEGIN; -- transaction starts
SELECT * FROM kv WHERE k = 1 FOR UPDATE; -- rows are chosen and locked
UPDATE kv SET v = v + 5 WHERE k = 1; -- update on locked rows happened
COMMIT; -- transaction commitedLast updated