07.10.2019, 18:24 | #22 |
Участник
|
Ну с RR вы получите блокировку, это как-бы не очень хорошо.
АХ по дефолту при update balance set quantity = x+2 where productid = 5; вернет вам ошибку, если запись уже кто-то обновил в другой сессии. Для этого в любой таблице добавляется столбец RecVersion, который рандомно заполняется при обновлениях, и если кто-то обновил запись до вас, у нее будет другое значение RecVersion. но это если не касаться остатков если говорить о остатках, то вместо update balance set quantity = x+2 where productid = 5; будет выполнено insert balanceLog(qty=2, productid = 5) и далее на завершении транзакции этот лог перепишется в таблицу балансов |
|