ÎncepețiÎncepe gratuit

Rollback cu mai multe instrucțiuni

Acum vom folosi mai multe instrucțiuni într-o tranzacție pentru a seta un indicator în FIELD48, în funcție de tipul de active deținute: active guvernamentale de stat din SUA, reprezentate în RCON2203, active externe, reprezentate în RCON2236, sau ambele. Valorile pentru FIELD48 ar trebui să fie 'US-STATE-GOV', 'FOREIGN' sau 'BOTH', respectiv. Însă ai făcut o greșeală în instrucțiunea pentru ambele tipuri.

Acest exercițiu face parte din cursul

Tranzacții și gestionarea erorilor în PostgreSQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • Construiește 3 instrucțiuni de tip UPDATE pentru a detecta fiecare condiție și a seta indicatorul corespunzător.
  • Anulează greșeala de a seta valoarea 'BOOTH' în loc de 'BOTH' prin efectuarea unui rollback al tranzacției.
  • Selectează numărul de înregistrări în care indicatorul este setat la 'BOOTH'.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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';
Editează și rulează codul