Mysql -возможно состояние гонки во время ЗАМЕНЫ?

#mysql

#mysql

Вопрос:

Прошу прощения за минималистичный вопрос, в руководстве об этом мало что говорится.
REPLACE INTO вызывает УДАЛЕНИЕ (если требуется) и ВСТАВКУ в первичный ключ при вставке.

Теперь, что мне интересно: есть ли на самом деле время, когда SELECT не вернет результат для затронутого основного объекта, который заменяется?

При выполнении ВСТАВКИ… ПО ДУБЛИРУЮЩЕМУ КЛЮЧУ… Я бы ожидал: нет никаких условий гонки, они всегда доступны.
Однако, если я представлю себе УДАЛЕНИЕ, ВСТАВКУ, все может быть по-другому.

Какой — нибудь эксперт знает об этом ?

Комментарии:

1. Если есть какие-то опасения по поводу подобных вещей, сделайте это в рамках транзакции. Это гарантирует отсутствие взаимосвязанных эффектов до тех пор, пока транзакция не будет зафиксирована.

2. По умолчанию каждый запрос автоматически выполняется в транзакции. Так что это должно быть безопасно. Но использование явных транзакций — лучший способ убедиться в этом.

3. хм, хорошо, так что на самом деле «гонка» должна быть невозможна, если она находится в транзакции по умолчанию.