다중 문장 롤백
이제 트랜잭션에서 여러 문장을 사용해, RCON2203에 표시된 미국 주정부 자산, RCON2236에 표시된 해외 자산, 또는 둘 다를 보유하는지에 따라 FIELD48 플래그를 설정해 보겠습니다. FIELD48의 값은 각각 'US-STATE-GOV', 'FOREIGN', 'BOTH'가 되어야 합니다. 그런데 둘 다인 경우를 처리하는 문장에서 실수를 했습니다.
이 연습은 강의의 일부입니다
PostgreSQL에서의 트랜잭션과 오류 처리
연습 안내
- 각 조건을 감지하고 플래그를 설정하는 UPDATE 문 3개를 작성하세요.
'BOTH'가 아니라'BOOTH'로 설정된 실수를 트랜잭션을 롤백하여 되돌리세요.- 플래그가
'BOOTH'로 설정된 레코드의 개수를 조회하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- 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';