LoslegenKostenlos loslegen

Savepoints und Rollbacks

Wir schauen weiterhin auf die Höhe der in naher Zukunft fälligen Termineinlagen. Die über 250.000 haben den größten Einfluss auf die Entwicklungen während des Marktes 2008.

RCONHK12 (>=250k) enthält die in den nächsten drei Monaten fälligen Einlagen und RCONHK13 (>=250k) die mit Fälligkeit zwischen 3 und 12 Monaten. Wenn diese über 1 Mio. US-Dollar liegen, kann das zu einem Liquiditätsengpass bei einer Bank führen, da es sich dabei typischerweise um größere Kundinnen und Kunden handelt, die möglicherweise auch andere Assets abziehen. Es gibt wiederum einen positiven Faktor, wenn diese unter 500.000 liegen.

Ich habe in meinem Code ein paar Fehler gemacht, indem ich für die über 500.000 US-Dollar den falschen Wert gesetzt habe!

Diese Übung ist Teil des Kurses

Transaktionen und Fehlerbehandlung in PostgreSQL

Kurs anzeigen

Anleitung zur Übung

  • Setze innerhalb einer Transaktion FIELD48 auf mature+, wenn die Summe der fälligen Einlagen unter 500.000 US-Dollar liegt, und setze einen Savepoint matureplus_flag_set.
  • Setze FIELD48 auf mature-, wenn die Summe der fälligen Einlagen zwischen 500.000 US-Dollar und 1 Mio. US-Dollar liegt, und setze einen Savepoint matureminus_flag_set.
  • Setze FIELD48 auf mature--, wenn die Summe der fälligen Einlagen größer als 100.000 US-Dollar ist (nicht 1 Mio.) – „aus Versehen“ eine 0 weggelassen.
  • Mache zurück bis direkt nach dem Setzen der mature--Datensätze rückgängig und zähle alle Banken mit einem mature---Fälligkeitsplan für Einlagen.

Interaktive Übung

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

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