Skip to content

Транзакции

Уровни изоляции транзакции:

  • READ UNCOMMITED - Чтение не зафиксированных данных
  • READ COMMITTED - Чтение зафиксированных данных
  • REPEATABLE READ - Чтение данных на момент начала транзакции
  • SERIALIZABLE - Как REPEATABLE READ

Все уровни относятся к самой, начинающей транзакции. К примеру, если первая транзакция запущена как: BEGIN ISOLATION LEVEL READ COMMITTED;, то внутри этой транзакции можно будет видеть изменения закоммиченные в других транзакциях. При попытке изменить данные, изменения из других транзакции так же будут учитываться, к примеру если до второй транзакции была строка которая подходит под удаление, а после коммита во второй транзакции такой строки нет, то удаление в первой транзакции не сработает.

В случае REPEATABLE READ транзакция будет работать со снапшотом/снимком данных на момент начала себя, т.е. изменения сделанные в других транзакциях не будут видны. При этом если попытаться изменить одни и те же строки, будет ошибка, и нужно будет повторить транзакцию.