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

Rollback pomocí savepointu

Navazujeme na předchozí cvičení. Ukázalo se, že banky s více než 6 miliony dolarů v MMDA mají dvakrát větší šanci přežít hospodářský pokles než ty, které mají v téže třídě aktiv mezi 5 a 6 miliony. V ukázkovém kódu jsem udělal chybu a potřebujeme se vrátit zpět na savepoint, abychom zachovali integritu dat.

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 'MMDA+' tam, kde RCON6810 (hodnota MMDA) je větší než 6 milionů dolarů.
  • Nastav savepoint s názvem mmdaplus_flag_set.
  • Nastav FIELD48 na 'MMDA+' tam, kde RCON6810 (hodnota MMDA) je větší než 5 milionů dolarů (toto je chyba).
  • Vrať se zpět na mmdaplus_flag_set, ukonči transakci a spočítej záznamy s hodnotou 'MMDA+'.

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;

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