Začněte nyníZačněte zdarma

Rollback více příkazů

Tentokrát použijeme více příkazů v rámci jedné transakce – nastavíme příznak v FIELD48 podle toho, zda banka drží aktiva státní správy USA (sloupec RCON2203), zahraniční aktiva (sloupec RCON2236), nebo obojí. Hodnoty FIELD48 by měly být 'US-STATE-GOV', 'FOREIGN', nebo 'BOTH'. Jenže v příkazu pro obě kategorie se vloudila chyba.

Toto cvičení je součástí kurzu

Transakce a ošetření chyb v PostgreSQL

Zobrazit kurz

Pokyny k cvičení

  • Sestav 3 příkazy UPDATE, které detekují každou podmínku a nastaví příznak.
  • Chybu, kdy je hodnota nastavena na 'BOOTH' místo 'BOTH', oprav vrácením transakce pomocí rollbacku.
  • Vyber počet záznamů, kde je příznak nastaven na 'BOOTH'.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

-- 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';
Upravit a spustit kód