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