Zacznij terazZacznij za darmo

Korzystanie z poziomu izolacji

Jak pokazano w filmie, w niektórych sytuacjach ważne jest, aby móc wybrać poziom izolacji dla konkretnej transakcji. Najlepiej użyć do tego START TRANSACTION – aliasu BEGIN TRANSACTION – który wyraźnie sygnalizuje, że coś jest inne. Poziom izolacji (ISOLATION LEVEL) można określić już podczas uruchamiania transakcji.

W tym ćwiczeniu użyjemy REPEATABLE READ, który chroni przed odczytami brudnych danych (dirty reads), niepowtarzalnymi odczytami (nonrepeatable reads) oraz odczytami fantomowymi (phantom reads). W danych FFEIC pole RCON2210 oznacza depozyty na żądanie – obejmuje wszystkie aktywne rachunki bieżące, czeki wystawione przez bank oraz niezaksięgowane kredyty. Mogą one stanowić zobowiązanie dla banku w przypadku nagłego odpływu środków. Znajdźmy wszystkie banki z depozytami na żądanie przekraczającymi 100 000 000 $.

To ćwiczenie jest częścią kursu

Transakcje i obsługa błędów w PostgreSQL

Zobacz kurs

Instrukcje do ćwiczenia

  • Rozpocznij transakcję z poziomem izolacji repeatable read.
  • Wybierz wszystkie rekordy, w których RCON2210 przekracza 100 000 000 $ w depozytach na żądanie.
  • Wybierz ponownie wszystkie rekordy, w których RCON2210 nadal przekracza 100 000 000 $ w depozytach na żądanie.
  • Zatwierdź transakcję.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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
___;
Edytuj i uruchom kod