LoslegenKostenlos loslegen

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

Transaktionen und Fehlerbehandlung in PostgreSQL

Kurs anzeigen

Anleitung zur Übung

  • 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 Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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