Terugrollen met een savepoint
Voortbouwend op de vorige oefening blijkt dat banken met meer dan $6 miljoen aan MMDA's twee keer zoveel kans hebben om een neergang te doorstaan dan banken met tussen de $5 en 6 miljoen in diezelfde activaklasse. In de voorbeeldcode heb ik een fout gemaakt, en we moeten terugrollen naar het savepoint om de dataintegriteit te behouden.
Deze oefening maakt deel uit van de cursus
Transacties en foutafhandeling in PostgreSQL
Oefeninstructies
- Stel binnen een transactie
FIELD48in op'MMDA+'waarRCON6810(MMDA-bedrag) groter is dan $6 miljoen. - Stel
mmdaplus_flag_setin als savepoint. - Stel
FIELD48in op'MMDA+'waarRCON6810(MMDA-bedrag) groter is dan $5 miljoen (dit is een fout). - Maak dit ongedaan tot
mmdaplus_flag_set, sluit de transactie af en tel de'MMDA+'-records.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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+';