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


SELECT * FROM aircrafts_tmp WHERE model ~ '^Air' FOR UPDATE



Pdf көрінісі
бет207/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   203   204   205   206   207   208   209   210   ...   243
Байланысты:
Язык SQL. Базовый курс

SELECT * FROM aircrafts_tmp WHERE model ~ '^Air' FOR UPDATE;
aircraft_code |
model
| range
---------------+-----------------+-------
320
| Airbus A320-200 | 5700
321
| Airbus A321-200 | 5600
319
| Airbus A319-100 | 6700
(3 строки)
На втором терминале организуйте аналогичную транзакцию и выполните точно та-
кую же команду. Вы увидите, что ее выполнение будет приостановлено.
SELECT * FROM aircrafts_tmp WHERE model ~ '^Air' FOR UPDATE;
На первом терминале обновите одну строку, а затем завершите транзакцию:
UPDATE aircrafts_tmp
SET range = 5800
WHERE aircraft_code = '320';
UPDATE 1
Перейдя на второй терминал, вы увидите, что там была, наконец, выполнена выбор-
ка, которая показала уже измененные данные:
aircraft_code |
model
| range
---------------+-----------------+-------
320
| Airbus A320-200 | 5800
321
| Airbus A321-200 | 5600
319
| Airbus A319-100 | 6700
(3 строки)
Завершите и вторую транзакцию.
217


Аналогичным образом можно организовать блокировки на уровне таблиц. Также на
первом терминале организуйте транзакцию с уровнем изоляции READ COMMITTED
и выполните команду блокировки всей таблицы в самом строгом режиме, в котором
другим транзакциям доступ к этой таблице запрещен полностью:
LOCK TABLE aircrafts_tmp IN ACCESS EXCLUSIVE MODE;
LOCK TABLE
На втором терминале выполните совершенно «безобидную» команду:
SELECT * FROM aircrafts_tmp WHERE model ~ '^Air';
Вы увидите, что выполнение команды SELECT на втором терминале будет задержано.
Прервите транзакцию на первом терминале командой ROLLBACK. Вы увидите, что на
втором терминале команда будет успешно выполнена.
Более подробно ознакомиться с различными видами блокировок уровня строки и
уровня таблицы можно с помощью документации (раздел 13.3 «Явные блокиров-
ки»).


Достарыңызбен бөлісу:
1   ...   203   204   205   206   207   208   209   210   ...   243




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

    Басты бет