ÎncepețiÎncepe gratuit

Rollback cu un savepoint

Continuând exercițiul anterior, s-a descoperit că băncile cu mai mult de 6 milioane de dolari în MMDA-uri au de două ori mai multe șanse să reziste într-o perioadă de recesiune față de cele cu valori între 5 și 6 milioane în aceeași clasă de active. În codul exemplu există o greșeală, așa că trebuie să dăm rollback la savepoint pentru a menține integritatea datelor.

Acest exercițiu face parte din cursul

Tranzacții și gestionarea erorilor în PostgreSQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • Într-o tranzacție, setează FIELD48 la 'MMDA+' unde RCON6810 (suma MMDA) este mai mare de 6 milioane de dolari.
  • Setează mmdaplus_flag_set ca savepoint.
  • Setează FIELD48 la 'MMDA+' unde RCON6810 (suma MMDA) este mai mare de 5 milioane de dolari (aceasta este o greșeală).
  • Revino la mmdaplus_flag_set, încheie tranzacția și numără înregistrările cu valoarea 'MMDA+'.

Exercițiu interactiv practic

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

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