1. 学ぶ
  2. /
  3. コース
  4. /
  5. PostgreSQL에서의 트랜잭션과 오류 처리

Connected

演習

여러 예외 블록

ROLLBACK TO와 SAVEPOINT는 예외 처리기가 있는 함수에서는 사용할 수 없기 때문에, 중첩 블록을 사용해 동일한 동작을 모방할 수 있어요. 이런 중첩 블록은 서로 의존하는 순서대로 문을 묶고 정렬하는 데 사용됩니다. 여기서는 SAVEPOINT를 모방하는 예외 처리기가 포함된 레코드 블록을 먼저 INSERT한 다음, 별도의 예외 처리기와 함께 레코드를 UPDATE할 거예요. 해당 UPDATE 문은 오류가 발생하며, 예외 처리기가 해당 블록만 자동으로 롤백합니다.

指示

100 XP
  • 첫 번째 블록에서 patients에 다음 레코드를 INSERT하세요. (a1c=5.6, glucose=93, fasting=TRUE), (6.3, 111, TRUE), (4.7, 65, TRUE). 그리고 예외가 발생하면 errors 테이블에 msg로 'failed to insert'를 INSERT하는 EXCEPTION 처리기를 추가하세요.
  • 두 번째 중첩 블록을 열고, ID가 1인 환자의 fasting 값을 'true'로 UPDATE하세요. 이때 예외 처리기를 사용해 errors 테이블에 msg로 'Inserted string into boolean.'을 기록하세요.
  • 두 블록 모두 END로 닫으세요.