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
Pokyny k cvičení
- V rámci transakce nastav
FIELD48namature+, pokud jsou celkové splatné vklady nižší než 500 tisíc dolarů, a ulož savepointmatureplus_flag_set. - Nastav
FIELD48namature-, pokud jsou celkové splatné vklady mezi 500 tisíci a 1 milionem dolarů, a ulož savepointmatureminus_flag_set. - Nastav
FIELD48namature--, pokud jsou celkové splatné vklady vyšší než 100 tisíc dolarů (ne 1 milion) – „omylem" vynecháš jednu0. - 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--';