ПочатиПочніть безкоштовно

Використання рівня ізоляції

Як ви бачили у відео, інколи важливо вміти встановити рівень ізоляції для окремої транзакції. Найкраще робити це за допомогою START TRANSACTION, що є синонімом BEGIN TRANSACTION, — так чітко видно, що щось відрізняється. Ви можете вказати ISOLATION LEVEL під час старту транзакції.

Тут ми використаємо REPEATABLE READ, який захищає від брудних читань, незвідних повторних читань і фантомних читань. У даних FFEIC поле RCON2210 — це сума за поточними депозитами (demand deposits) і охоплює всі непогашені рахунки за чековими рахунками, чеки, випущені банком, та непроведені зарахування. Вони можуть бути зобов'язанням для банку, якщо з будь-якої причини станеться раптовий відтік коштів. Знайдімо всі банки з понад $100,000,000 у поточних депозитах.

Ця вправа є частиною курсу

Транзакції та обробка помилок у PostgreSQL

Переглянути курс

Інструкції до вправи

  • Запустіть транзакцію з repeatable read.
  • Виберіть усі записи, де RCON2210 перевищує $100,000,000 у поточних депозитах.
  • Повторно виберіть усі записи, де RCON2210 усе ще перевищує $100,000,000 у поточних депозитах.
  • Зафіксуйте транзакцію за допомогою COMMIT.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

-- 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
___;
Редагувати та запускати код