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