прочитал, и вот что понял. (можно пересказать своими словами? 🙂 )
стандартная изоляция Read Committed
У меня выполняются параллельно несколько запросов SELECT FOR UPDATE (вложенный запрос в моем примере)
Если запрос нашел строки, которые уже изменены другой транзакцией, согласно документации:
«Если первая транзакция зафиксировалась, но в результате удалила эту строку, вторая будет игнорировать её, а в противном случае попытается выполнить свою операцию с изменённой версией строки.»
так как у меня не удаление а изменение строк - у меня будет выполняться «в противном случае попытается выполнить свою операцию с изменённой версией строки»
Так как первая транзакция изменила данные которые не должны попадать в условия WHERE, но повторно условие не проверяется - будет накладка
верно?
Почему Вы именно меня-то спрашиваете? ;) Мне "радости" RC разбирать не интересно, извините (я стараюсь с ним не работать) — может, кто-то подскажет...
Обсуждают сегодня