• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    1. BEGIN ... END 복합 명령문 구문
    2. 레이블 구문
    3. DECLARE 구문
    4. 저장 프로그램 내의 변수
    5. 흐름 제어문
    6. 커서
    7. 조건의 처리
    1. DECLARE ... CONDITION 구문
    2. DECLARE ... HANDLER 구문
    3. GET DIAGNOSTICS 구문
    4. RESIGNAL 구문
    5. SIGNAL 구문
    6. 핸들러의 범위에 관한 규칙
    7. MySQL의 진단 영역
    7. 데이터베이스 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.6.7.1 DECLARE ... CONDITION 구문

DECLARE condition_name CONDITION FOR condition_value

condition_value:
    mysql_error_code
  | SQLSTATE [VALUE] sqlstate_value 

DECLARE ... CONDITION 문은 명명 된 오류 조건을 선언하고 특정 처리가 필요한 조건에 이름을 연결합니다. 이 이름은 이후 DECLARE ... HANDLER 문에서 참조 할 수 있습니다 ( 섹션 13.6.7.2 "DECLARE ... HANDLER 구문" 을 참조하십시오).

조건 선언은 커서 또는 핸들러 선언 앞에 지정해야합니다.

DECLARE ... CONDITION 의 condition_value 는 MySQL 에러 코드 (번호) 또는 SQLSTATE 값 (5 문자열 리터럴) 할 수 있습니다. MySQL 오류 코드 0 또는 '00' 로 시작하는 SQLSTATE 값은 오류 조건이 아닌 성공을 설명하기 위해 사용해서는 없습니다. MySQL 오류 코드 및 SQLSTATE 값의 목록은 섹션 B.3 "서버 오류 코드 및 메시지" 를 참조하십시오.

조건 이름을 사용하면 저장 프로그램 코드의 명확화에 도움이 될 수 있습니다. 예를 들어, 다음 핸들러는 존재하지 않는 테이블을 제거하려는 시도에 적용되지만, 그것은 분명한 것은 MySQL 에러 코드 1051의 의미를 알고있는 경우뿐입니다.

 DECLARE CONTINUE HANDLER FOR 1051
   BEGIN
     - body of handler
   END;

조건의 이름을 선언함으로써이 핸들러의 목적이 더 쉽게 알 수 있습니다.

 DECLARE no_such_table CONDITION FOR 1051;
 DECLARE CONTINUE HANDLER FOR no_such_table
   BEGIN
     - body of handler
   END;

이것은 동일한 조건의 MySQL 오류 코드가 아닌 해당 SQLSTATE 값을 기준으로 명명 된 조건입니다.

 DECLARE no_such_table CONDITION FOR SQLSTATE '42S02';
 DECLARE CONTINUE HANDLER FOR no_such_table
   BEGIN
     - body of handler
   END;

SIGNAL 에서 참조되거나 RESIGNAL 문에서 사용되는 조건 이름은 MySQL 에러 코드가 아니라 SQLSTATE 값과 관련된해야합니다.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved