Začněte nyníZačněte zdarma

Savepointy a rollback

Pokračujeme v analýze termínovaných vkladů, které brzy splatí. Největší dopad na výsledky z roku 2008 měly vklady nad 250 tisíc dolarů.

RCONHK12 (>=250k) uchovává vklady splatné v příštích třech měsících a RCONHK13 (>=250k) ty splatné mezi 3 a 12 měsíci. Pokud tyto hodnoty přesáhnou 1 milion dolarů, může bance hrozit nedostatek prostředků – jde totiž obvykle o větší klienty, kteří mohou stáhnout i další aktiva. Naopak hodnoty pod 500 tisíc dolarů působí pozitivně.

V kódu jsem udělal/a pár chyb – špatně jsem nastavil/a hodnotu pro vklady nad 500 tisíc dolarů!

Toto cvičení je součástí kurzu

Transakce a ošetření chyb v PostgreSQL

Zobrazit kurz

Pokyny k cvičení

  • V rámci transakce nastav FIELD48 na mature+, pokud jsou celkové splatné vklady nižší než 500 tisíc dolarů, a ulož savepoint matureplus_flag_set.
  • Nastav FIELD48 na mature-, pokud jsou celkové splatné vklady mezi 500 tisíci a 1 milionem dolarů, a ulož savepoint matureminus_flag_set.
  • Nastav FIELD48 na mature--, pokud jsou celkové splatné vklady vyšší než 100 tisíc dolarů (ne 1 milion) – „omylem" vynecháš jednu 0.
  • Vrať změny zpět na stav těsně po nastavení záznamů mature- a spočítej všechny banky s rozvrhem splatnosti vkladů mature--.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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--';
Upravit a spustit kód