В приложении с высокой степенью одновременности (теоретически) может случиться, что данные, которые вы прочитали при первом выборе, будут изменены до того, как будут выполнены другие варианты выбора.
Если это ситуация, которая может возникнуть в вашем приложенииВы должны использовать транзакцию, чтобы завершить выборУбедитесь, что вы выбрали правильный уровень изоляции , однако не все типы транзакций гарантируют согласованное чтение.
Обновление : Вы также можете найти эту статью по параллельному обновлению / вставке решения (aka upsert) интересно.Он проверяет несколько распространенных методов upsert, чтобы увидеть, какой метод на самом деле гарантирует, что данные не изменятся между оператором select и следующим оператором.Я бы сказал, шокирующие результаты.