одновременное обновление таблицы - PullRequest
0 голосов
/ 22 января 2012

Всегда ли следующий запрос на обновление оставляет данные таблицы без изменений?

update mytable set column1 = column1

Интересно, будут ли потеряны обновления?

Изначально column1 имеет значение oldValue.Есть две транзакции (t1 и t2), и t2 начинается в середине t1.

t1: update mytable set column1 = 'newValue'

и

t2: update mytable set column1 = column1

, так как транзакция t2 началась позже, чем t1, она также завершилась позже, чем t1.

Вопрос: какое значение будет присвоено column1?

1 Ответ

1 голос
/ 22 января 2012

Уровень изоляции транзакций - это то, что позволяет изолировать различные транзакции, и если вы используете фиксацию чтения или более высокие уровни изоляции, проблем не будет.

Кстати, насколько я знаю, ваш первый запрос никогда не обновляет никакие записи в Oracle, даже с уровнем изоляции «read uncommitted».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...