Здравствуйте, Sinclair, Вы писали:
S>·>мне неясно.
S>Там ничего неясного нет — просто добавляется ещё один предикат во where, а заказ распадается на reserved и residual.
Т.е. в одной транзакции будут roundtrips между субд и приложением для каждого товара?
Мне кажется, что
begin transaction;
update stock ...;
insert into reservationItems(orderId, productId, quantity) values(42, 17, 10);
commit transaction;//constraint checked
begin transaction;
update stock ...;
insert into reservationItems(orderId, productId, quantity) values(42, 5, 1);
commit transaction;//constraint checked
будет выполняться быстрее, чем
begin transaction;
update stock ... where available>0;
//check UpdateCount?
update stock ... where available>0;
//check UpdateCount?
insert into reservationItems(orderId, productId, quantity) values(42, 17, 10);
insert into reservationItems(orderId, productId, quantity) values(42, 5, 1);
commit transaction