Wycofywanie zmian z użyciem punktu zapisu
Nawiązując do poprzedniego ćwiczenia – okazuje się, że banki z ponad 6 milionami dolarów w MMDA mają dwukrotnie większe szanse na przetrwanie spowolnienia gospodarczego niż te z kwotą między 5 a 6 milionami w tej samej klasie aktywów. W przykładowym kodzie pojawił się błąd – trzeba wycofać zmiany do punktu zapisu, aby zachować integralność danych.
To ćwiczenie jest częścią kursu
Transakcje i obsługa błędów w PostgreSQL
Instrukcje do ćwiczenia
- W ramach transakcji ustaw
FIELD48na'MMDA+'tam, gdzieRCON6810(kwota MMDA) jest większa niż 6 milionów dolarów. - Ustaw
mmdaplus_flag_setjako punkt zapisu. - Ustaw
FIELD48na'MMDA+'tam, gdzieRCON6810(kwota MMDA) jest większa niż 5 milionów dolarów (to jest błąd). - Wycofaj zmiany do
mmdaplus_flag_set, zakończ transakcję i zlicz rekordy'MMDA+'.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
BEGIN;
-- Set the flag to MMDA+ where the value is greater than $6 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where RCON6810 > 6000000;
-- Set a Savepoint
___ mmdaplus_flag_set;
-- Mistakenly set the flag to MMDA+ where the value is greater than $5 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where ___ > 5000000;
-- Rollback to savepoint
___ TO ___;
COMMIT;
-- Select count of records where the flag is MMDA+
SELECT count(FIELD48) from ffiec_reci where FIELD48 = 'MMDA+';