LoslegenKostenlos loslegen

Rollbacks über mehrere Statements

Nutzen wir jetzt mehrere Statements in einer Transaktion, um ein Flag in FIELD48 zu setzen – je nachdem, ob US-Bundesstaaten-Anlagen in RCON2203, ausländische Anlagen in RCON2236 oder beide gehalten werden. Die Werte für FIELD48 sollten entsprechend 'US-STATE-GOV', 'FOREIGN' oder 'BOTH' sein. Allerdings hast du dich im Statement für „beide“ vertan.

Diese Übung ist Teil des Kurses

Transaktionen und Fehlerbehandlung in PostgreSQL

Kurs anzeigen

Anleitung zur Übung

  • Erstelle 3 UPDATE-Statements, um jede Bedingung zu erkennen und das Flag zu setzen.
  • Mache den Fehler rückgängig, bei dem 'BOOTH' statt 'BOTH' gesetzt wurde, indem du die Transaktion zurückrollst.
  • Selektiere eine Anzahl der Datensätze, bei denen das Flag auf 'BOOTH' steht.

Interaktive Übung

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

-- Begin a new transaction
BEGIN;

-- Update FIELD48 flag status if US State Government deposits are held
UPDATE ffiec_reci
SET ___ = 'US-STATE-GOV'
WHERE RCON2203 > 0;

-- Update FIELD48 flag status if Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = '___'
WHERE RCON2236 > 0;

-- Update FIELD48 flag status if US State Government and Foreign deposits are held
UPDATE ffiec_reci
SET FIELD48 = 'BOOTH'
WHERE RCON2236 > 0
AND ___ > 0;

-- Undo the mistake
___; 

-- Select a count of records that are booth (it should be 0)
SELECT COUNT(FIELD48)
FROM ffiec_reci
WHERE ___ = 'BOOTH';
Code bearbeiten und ausführen