DO 문 작성하기
데이터를 정제하다 보면 잘못된 날짜가 포함된 데이터를 자주 만나게 됩니다. 이로 인해 예외가 발생하고 SQL 문이 중단될 수 있습니다. 하지만 예외 처리기가 있는 DO 함수를 사용하면 문을 끝까지 실행할 수 있어요. patients 테이블의 created_on 열에서 이런 유형의 예외를 어떻게 처리할 수 있는지 살펴보겠습니다. 이를 통해 DO 스타일의 함수를 사용하는 연습도 해봅니다.
이 연습은 강의의 일부입니다
PostgreSQL에서의 트랜잭션과 오류 처리
연습 안내
- 예외 포착을 시작하기 위해
DO함수를 만드세요. - 트랜잭션을 BEGIN 한 후,
patients에 행을INSERT하세요 (a1c=5.8,glucose=89,fasting=TRUE,created_on= '37-03-2020 01:15:54'). - 오류가 발생할 경우
errors테이블의detail열에'bad date'를 삽입하는EXCEPTION처리기를 추가하세요. - 언어는
'plpgsql'로 지정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- Create a DO $$ function
____ ____
-- BEGIN a transaction block
BEGIN
INSERT INTO patients (a1c, glucose, fasting, created_on)
VALUES (____, ____, ____, '37-03-2020 01:15:54');
-- Add an EXCEPTION
___
-- For all all other type of errors
WHEN others THEN
INSERT INTO errors (msg, detail)
VALUES ('failed to insert', '____');
END;
-- Make sure to specify the language
$$ language '____';
-- Select all the errors recorded
SELECT * FROM errors;