Если вы поместите свои выборки в транзакцию, уровень изоляции TRANSACTION_REPEATABLE_READ будет препятствовать обновлению выбранных строк, пока ваша транзакция выбора не будет зафиксирована. Но не помешают вставки.
Это пессимистический подход к блокировке, который подходит для вашего случая использования. Я предполагаю, что ваша транзакция select недолговечна, потому что клиенты, пытающиеся обновить некоторые из выбранных строк, ожидают фиксации транзакции select.
Оптимистическая стратегия блокировки с контролем версий более полезна в случае использования «изменить запись», когда какой-либо клиент выбирает строку, тратит 2,3 или 10 минут на поиск / изменение записи (в пользовательском интерфейсе), а затем сохраняет (фиксирует) ) его модификации. С помощью этой стратегии мы не хотим, чтобы другие клиенты ожидали, пока первый из них сохранит свои модификации.