LoslegenKostenlos starten

Mit einem Savepoint zurückrollen

Aufbauend auf der letzten Übung stellt sich heraus, dass Banken mit mehr als 6 Mio. \( in MMDAs doppelt so wahrscheinlich einen Abschwung überstehen wie solche mit 5 bis 6 Mio. \) in derselben Asset-Klasse. Im Beispielcode ist mir hier ein Fehler unterlaufen, und wir müssen zum Savepoint zurückrollen, um die Datenintegrität zu wahren.

Diese Übung ist Teil des Kurses

<Kurs>Transaktionen und Fehlerbehandlung in PostgreSQL</Kurs>
Kurs ansehen

Übungsanweisungen

  • Setze innerhalb einer Transaktion FIELD48 auf 'MMDA+', wenn RCON6810 (MMDA-Betrag) größer als 6 Mio. $ ist.
  • Setze mmdaplus_flag_set als Savepoint.
  • Setze FIELD48 auf 'MMDA+', wenn RCON6810 (MMDA-Betrag) größer als 5 Mio. $ ist (das ist ein Fehler).
  • Mache bis zu mmdaplus_flag_set rückgängig, beende die Transaktion und zähle die 'MMDA+'-Datensätze.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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+';
Code bearbeiten und ausführen