НачатьНачать бесплатно

Использование уровня изоляции

Как было показано в видео, иногда важно задать уровень изоляции для отдельной транзакции. Для этого лучше использовать START TRANSACTION — псевдоним BEGIN TRANSACTION, который явно сигнализирует, что транзакция настраивается особым образом. При запуске транзакции можно указать ISOLATION LEVEL.

В этом упражнении мы используем REPEATABLE READ — уровень, защищающий от грязных чтений, неповторяемых чтений и фантомных чтений. В данных FFEIC поле RCON2210 отражает депозиты до востребования: остатки на текущих счетах, чеки, выданные банком, и незачисленные кредиты. При массовом изъятии средств это может стать серьёзной нагрузкой для банка. Найдём все банки, у которых депозиты до востребования превышают $100 000 000.

Это упражнение является частью курса

Транзакции и обработка ошибок в PostgreSQL

Посмотреть курс

Инструкции к упражнению

  • Начните транзакцию с уровнем изоляции repeatable read.
  • Выберите все записи, в которых RCON2210 превышает $100 000 000 по депозитам до востребования.
  • Выберите все записи, в которых RCON2210 по-прежнему превышает $100 000 000 по депозитам до востребования.
  • Зафиксируйте транзакцию.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

-- Create a new transaction with an isolation level of repeatable read
___ TRANSACTION ___ LEVEL ___ ___;

-- Count of records over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;

-- Count of records still over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;

-- Commit the transaction
___;
Редактировать и запускать код