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>Übungsanweisungen
- Setze innerhalb einer Transaktion
FIELD48auf'MMDA+', wennRCON6810(MMDA-Betrag) größer als 6 Mio. $ ist. - Setze
mmdaplus_flag_setals Savepoint. - Setze
FIELD48auf'MMDA+', wennRCON6810(MMDA-Betrag) größer als 5 Mio. $ ist (das ist ein Fehler). - Mache bis zu
mmdaplus_flag_setrü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+';