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