Рассмотрите эту ситуацию:
153
)id >= 153
Действительно ли шаг 4 безопасен?
Таким образом, если другой запрос входит почти точно одновременно и вставляет еще 20 записей после шага 2 выше, но перед шагом 4, там будет состояние состязания?
То есть, если другой запрос приходит почти в то же время и вставляет еще 20 записей после шага 2 выше, но до шага 4, возникнет ли состояние гонки?
Да, будет.
Записи с 21
по 40
будут заблокированы транзакцией 2
.
Транзакция 1
будет заблокирована и будет ждать, пока транзакция 2
не зафиксируется или не откатится.
Если транзакция 2
фиксируется, то транзакция 1
обновит 40
записей (включая те, которые были добавлены транзакцией 2
)