Транзакция A дважды читает одну и ту же строку. Между этими чтениями вклинивается транзакция B, которая изменяет значения в строке.
Время | Транзакция A | Транзакция B |
Чтение | --- | |
--- | Чтение | |
--- | Запись | |
--- | COMMIT | |
Повторное чтение | --- | |
COMMIT | --- | |
Неповторяемое считывание |
Результат. Транзакция A не знает о существовании транзакции B, и, т.к. сама не меняет значение в строке, то ожидает, что после повторного чтения значение будет тем же самым. Транзакция A работает с данными, которые, с точки зрения транзакции A, самопроизвольно изменяются.