2010년 7월 8일 목요일

[MySQL Stored Procedure]장애처리(Handler)

Condition Handler
 - Syntax

   DECLARE [CONTINUE|EXIT] HANDLER FOR
   [SQLSTATE sqlstate_code|MySQL error code|condition name]
   handler_actions


  
핸들러의 종류
 - EXIT핸들러
   현재 실행중인 블록 중단, outer블럭일 경우 종료됨
 - CONTINUE
   에러를 발생시킨 문장이 계속 실행됨

 

핸들러의 조건
 - MySQL Error Code : 에러코드를 조건으로 받음

   DECLARE CONTINUE HANDLER FOR 1062 SET duplicate_key=1


 - ANSI-Standard SQLSTATE code : ANSI SQL 2003 표준 SQLSTATE 코드를 조건으로 받음

   DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET duplicate_key=1


 - Named Conditions
   사용자가 임의로 에러코드에 이름을 부여하여 코드의 가독성을 높인다

   DECLARE foreign_key_error CONDITION FOR 1216;
   DECLARE CONTINUE HANDLER FOR foreign_key_error SET duplicate_key=1

 

SQL 2003에서 빠진 부분
 - SQLCODE 또는 SQLSTATE에 대한 직접 접근
 - SIGNAL문의 사용
  

댓글 없음:

댓글 쓰기