시작하기무료로 시작하기

세이브포인트로 롤백하기

이전 연습 문제를 이어서, MMDA가 600만 달러를 초과하는 은행은 같은 자산군에서 500만~600만 달러 사이인 은행보다 경기 침체 시 생존할 확률이 두 배 더 높은 것으로 나타났어요. 여기 제공된 샘플 코드에 실수가 있어 데이터 무결성을 지키려면 세이브포인트로 롤백해야 해요.

이 연습은 강의의 일부입니다

PostgreSQL에서의 트랜잭션과 오류 처리

강의 보기

연습 안내

  • 트랜잭션 안에서 RCON6810(MMDA 금액)이 600만 달러보다 큰 경우 FIELD48'MMDA+'로 설정하세요.
  • mmdaplus_flag_set을 세이브포인트로 설정하세요.
  • RCON6810(MMDA 금액)이 500만 달러보다 큰 경우 FIELD48'MMDA+'로 설정하세요(이것은 실수예요).
  • mmdaplus_flag_set으로 되돌린 뒤 트랜잭션을 종료하고 'MMDA+' 레코드 수를 집계하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

BEGIN;

-- Set the flag to MMDA+ where the value is greater than $6 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where RCON6810 > 6000000;

-- Set a Savepoint
___ mmdaplus_flag_set;

-- Mistakenly set the flag to MMDA+ where the value is greater than $5 million
UPDATE ffiec_reci set FIELD48 = 'MMDA+' where ___ > 5000000;

-- Rollback to savepoint
___ TO ___;

COMMIT;

-- Select count of records where the flag is MMDA+
SELECT count(FIELD48) from ffiec_reci where FIELD48 = 'MMDA+';
코드 편집 및 실행