1. 학습
  2. /
  3. 강의
  4. /
  5. PostgreSQL에서의 트랜잭션과 오류 처리

Connected

연습 문제

세이브포인트와 롤백

가까운 미래에 만기가 도래하는 정기예금 규모를 계속 살펴보려고 해요. 25만 달러를 초과하는 예금이 2008년 시장에서 나타난 결과에 가장 큰 영향을 미쳤습니다.

RCONHK12(>=250k)에는 향후 3개월 안에 만기가 도래하는 금액이, RCONHK13(>=250k)에는 3~12개월 사이에 만기 도래하는 금액이 저장됩니다. 이 값이 100만 달러를 초과하면 은행에 자금 부족이 생길 수 있어요. 보통 은행의 큰 고객들이라 다른 자산도 함께 인출할 수 있기 때문입니다. 반대로 50만 달러 미만이면 긍정적인 요인으로 볼 수 있어요.

제가 50만 달러를 초과하는 항목에 잘못된 값을 설정하는 바람에 코드에 몇 가지 실수가 생겼네요!

지침

100 XP
  • 트랜잭션 내부에서 총 만기 도래 예금이 50만 달러 미만이면 FIELD48을 mature+로 설정하고, 세이브포인트 matureplus_flag_set을 설정하세요.
  • 총 만기 도래 예금이 50만 달러 이상 100만 달러 이하이면 FIELD48을 mature-로 설정한 뒤, 세이브포인트 matureminus_flag_set을 설정하세요.
  • 총 만기 도래 예금이 10만 달러를 초과하면(100만 달러가 아니라) FIELD48을 mature--로 설정하세요. 여기서는 0을 하나 "실수로" 빼먹는 상황입니다.
  • mature- 레코드를 설정한 직후 시점으로 되돌리기(UNDO) 한 다음, 예금 만기 일정이 mature--로 된 은행 수를 집계하세요.