Zacznij terazZacznij za darmo

Poziomy izolacji i transakcje

SERIALIZABLE to poziom izolacji, który tworzy migawkę rekordu w momencie wydania pierwszego zapytania lub polecenia aktualizacji. Jeśli dane zostaną zmienione poza transakcją, zgłaszany jest błąd. Warto wiedzieć, że transakcja może wykonywać inne operacje – na przykład deklarować zmienne – zanim zostanie wydane pierwsze zapytanie.

Do pracy z danymi użyjesz ponownie zbioru FFIEC. Skupisz się na przypadkach, w których roczna zmiana depozytów oszczędnościowych RCON0352 jest zaburzona przez duże odchylenie.

To ćwiczenie jest częścią kursu

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Rozpocznij transakcję w trybie SERIALIZABLE.
  • Zaktualizuj wszystkie rekordy, w których RCON0352 jest większe niż 100 000, stosując redukcję o 50%.
  • Zatwierdź transakcję poleceniem COMMIT.
  • Wybierz liczbę rekordów, w których RCON0352 nadal jest większe niż 100 000.

Interaktywne ćwiczenie praktyczne

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

-- Create a new transaction with a serializiable isolation level
___ TRANSACTION ISOLATION LEVEL ___;

-- Update records with a 50% reduction if greater than 100000
___ ffiec_reci
SET ___ = ___ * 0.5
WHERE RCON0352 > 100000;

-- Commit the transaction
___;

-- Select a count of records still over 100000
SELECT ___(RCON0352)
FROM ___
WHERE RCON0352 > 100000;
Edytuj i uruchom kod