Zacznij terazZacznij za darmo

Wycofywanie transakcji z wieloma instrukcjami

Teraz użyjemy wielu instrukcji w ramach jednej transakcji, aby ustawić flagę w FIELD48 w zależności od tego, czy bank posiada aktywa rządów stanowych USA (kolumna RCON2203), aktywa zagraniczne (RCON2236) lub oba rodzaje. Odpowiednie wartości to 'US-STATE-GOV', 'FOREIGN' oraz 'BOTH'. Niestety, w instrukcji dotyczącej obu typów wkradł się błąd.

To ćwiczenie jest częścią kursu

Transakcje i obsługa błędów w PostgreSQL

Zobacz kurs

Instrukcje do ćwiczenia

  • Zbuduj 3 instrukcje UPDATE, które wykryją każdy warunek i ustawią odpowiednią flagę.
  • Cofnij błąd polegający na ustawieniu wartości 'BOOTH' zamiast 'BOTH', wykonując rollback transakcji.
  • Wybierz liczbę rekordów, w których flaga ma wartość 'BOOTH'.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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';
Edytuj i uruchom kod