Если использовать no_rec_version, то изменить данные, которые уже
изменены в другой завершённой транзакции, будет не возможно.
ошибка. изменить их всегда невозможно в этом случае,
ты уверен? может сейчас что-то изменилось, но вот этот пример когда-то
работал без проблем для read committed и rec_version (псевдо-код):
A.startTransaction();
B.startTransaction();
A.selectRowById(accountId = 1); // balance = 5
B.selectRowById(accountId = 1); // balance = 5
A.updateRowById(accountId = 1,
set balance = balance - 3);
A.commit(); // now balance is 2, but B
believes it is 5
B.updateRowById(accountId = 1, // <--- Ups! we get no lock
conflict!
set balance = balance - 4);
B.commit(); // now balance is -2, not 1
а вот
no_rec_version препятствует не изменению, а ЧТЕНИЮ измененных но
не committed записей.
это да :)
Роман