Примеры.

Версия 1.6 от Alexandr Fokin на 2023/01/09 03:08

Необходимый уровень изоляцииЗапросКомментарий
Read CommittedBEGIN;

 UPDATE accounts
 SET balance = balance + @payment
 WHERE acctnum = @account1

 UPDATE accounts
 SET balance = balance - @payment
 WHERE acctnum = @account;

COMMIT;
Относительное изменения значения (а не константное).
Без проверок.
Read CommittedBEGIN;

  if (SELECT balance FROM accounts where acctnum = 7534) < @payment
   RAISE EXCEPTION ''
  END IF

 UPDATE accounts
 SET balance = balance + @payment
 WHERE acctnum = @account1

 UPDATE accounts
 SET balance = balance - @payment
 WHERE acctnum = @account;

COMMIT;
Предварительная проверка условия перед изменением строк.