ÎncepețiÎncepe gratuit

Savepoint-uri și rollback

Continuăm să analizăm volumul depozitelor la termen care ajung la scadență în viitorul apropiat. Cele peste 250K au cel mai mare impact asupra rezultatelor observate în timpul crizei din 2008.

RCONHK12 (>=250k) stochează depozitele care ajung la scadență în următoarele trei luni, iar RCONHK13 (>=250k) pe cele care expiră între 3 și 12 luni. Dacă acestea depășesc 1 milion de dolari, pot provoca un deficit de lichidități la o bancă, deoarece sunt, de regulă, clienți mari care ar putea retrage și alte active. Există și un factor pozitiv dacă valorile sunt sub 500K.

Am făcut câteva greșeli în cod, setând valoarea greșită pentru depozitele de peste 500 de mii de dolari!

Acest exercițiu face parte din cursul

Tranzacții și gestionarea erorilor în PostgreSQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • În cadrul unei tranzacții, setează FIELD48 la mature+ dacă totalul depozitelor la termen este mai mic de 500 de mii de dolari și creează un savepoint matureplus_flag_set.
  • Setează FIELD48 la mature- dacă totalul depozitelor la termen este între 500 de mii și 1 milion de dolari, apoi creează un savepoint matureminus_flag_set.
  • Setează FIELD48 la mature-- dacă totalul depozitelor la termen este mai mare de 100 de mii de dolari (nu 1 milion) – omițând „accidental" un 0.
  • Anulează modificările până la punctul de după setarea înregistrărilor mature- și numără toate băncile cu un program de scadență mature--.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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--';
Editează și rulează codul