Aan de slagGa gratis aan de slag

Savepoints en terugdraaien

We blijven nadenken over het aantal termijndeposito’s dat binnenkort afloopt. Die boven 250K hebben de grootste impact op de uitkomsten die we in de markt van 2008 zagen.

RCONHK12 (>=250k) bevat de deposito’s die in de komende drie maanden aflopen en RCONHK13 (>=250k) bevat die welke tussen 3 en 12 maanden vervallen. Als deze hoger zijn dan $1 miljoen, kan dat een liquiditeitstekort bij een bank veroorzaken, omdat dit meestal grotere klanten zijn die mogelijk ook andere bezittingen meenemen. Er is juist een positief effect als deze lager zijn dan $500K.

Ik heb een paar fouten in mijn code gemaakt door de verkeerde waarde in te stellen voor bedragen boven $500 duizend!

Deze oefening maakt deel uit van de cursus

Transacties en foutafhandeling in PostgreSQL

Cursus bekijken

Oefeninstructies

  • Stel binnen een transactie FIELD48 in op mature+ als het totaal aan aflopende deposito’s minder is dan $500 duizend en zet een savepoint matureplus_flag_set.
  • Stel FIELD48 in op mature- als het totaal aan aflopende deposito’s tussen $500 duizend en $1 miljoen ligt en zet vervolgens een savepoint matureminus_flag_set.
  • Stel FIELD48 in op mature-- als het totaal aan aflopende deposito’s groter is dan $100 duizend (niet $1 miljoen) — waarbij je per ongeluk een 0 weglaat.
  • Draai terug tot net nadat we de mature- records hebben ingesteld en tel alle banken met een mature-- schema voor de looptijd van deposito’s.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

BEGIN;

-- Update FIELD48 to indicate a positive maturity rathing when less than $500 thousand.
UPDATE ffiec_reci 
SET ___ = '___' 
WHERE RCONHK12 + RCONHK13 < 500000;

-- Set a savepoint
SAVEPOINT ___;

-- Update FIELD48 to indicate a negative maturity rathing when between $500 thousand and $1 million.
UPDATE ffiec_reci 
___ 
WHERE RCONHK12 + RCONHK13 BETWEEN ___ AND ___;

-- Set a savepoint
SAVEPOINT ___;

-- Accidentailly update FIELD48 to indicate a double negative maturity rating when more than 100K
UPDATE ffiec_reci 
SET ___ = '___' 
WHERE RCONHK12 + RCONHK13 > 100000;

-- Rollback to before the last mistake
ROLLBACK TO ___;

-- Select count of records with a double negative indicator
SELECT count(FIELD48) 
from ffiec_reci 
WHERE FIELD48 = 'mature--';
Code bewerken en uitvoeren