Учебно-практическое пособие москва 2017 ббк


END; COMMIT 9.3 Уровень изоляции REPEATABLE READ



Pdf көрінісі
бет199/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   195   196   197   198   199   200   201   202   ...   243
Байланысты:
Язык SQL. Базовый курс

END;
COMMIT
9.3 Уровень изоляции REPEATABLE READ
Третий уровень изоляции — REPEATABLE READ. Само его название говорит о том,
что он не допускает наличия феномена неповторяющегося чтения данных. А в
PostgreSQL на этом уровне не допускается и чтение фантомных строк.
Приложения, использующие этот уровень изоляции должны быть готовы к тому, что
придется выполнять транзакции повторно. Это объясняется тем, что транзакция, ис-
пользующая этот уровень изоляции, создает снимок данных не перед выполнением
каждого запроса, а только однократно, перед выполнением
первого запроса
транзак-
ции. Поэтому транзакции с этим уровнем изоляции не могут изменять строки, ко-
торые были изменены другими завершившимися транзакциями уже после создания
снимка. Вследствие этого PostgreSQL не позволит зафиксировать транзакцию, кото-
рая попытается изменить уже измененную строку.
Важно помнить, что повторный запуск может потребоваться только для транзакций,
которые вносят изменения в данные. Для транзакций, которые только читают дан-
ные, повторный запуск никогда не требуется.
На первом терминале:
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
BEGIN
Сначала посмотрим содержимое таблицы:
SELECT * FROM aircrafts_tmp;
Обратите внимание, что после уже проведенных экспериментов в таблице осталось
меньше строк, чем было вначале.
aircraft_code |
model
| range
---------------+---------------------+-------
320
| Airbus A320-200
| 5700
321
| Airbus A321-200
| 5600
319
| Airbus A319-100
| 6700
SU9
| Sukhoi SuperJet-100 | 3700
CN1
| Cessna 208 Caravan | 2100
CR2
| Bombardier CRJ-200 | 1900
(6 строк)
207


На втором терминале проведем ряд изменений:


Достарыңызбен бөлісу:
1   ...   195   196   197   198   199   200   201   202   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет