27
.2 조건 처리 제한
SIGNAL
, RESIGNAL
및 GET DIAGNOSTICS
는 준비된 명령문으로 허용되지 않습니다. 예를 들어, 다음 명령문은 유효하지 않습니다.
PREPARE stmt1 FROM 'SIGNAL SQLSTATE "02000"';
클래스 '04'
의 SQLSTATE
값은 특별 취급되지 않습니다. 다른 예외와 마찬가지로 처리됩니다.
표준 SQL에는 중첩 된 실행 컨텍스트 별 진단 영역을 포함한 진단 영역 스택이 있습니다. 표준 SQL 구문에는 스택 영역을 참조하는 GET STACKED DIAGNOSTICS
가 포함되어 있습니다. MySQL에서는 가장 최근에 쓴 문 정보를 포함하는 단일 진단 영역이 있기 때문에 STACKED
키워드를 지원하지 않습니다. 섹션 13.6.7.7 "MySQL의 진단 영역" 을 참조하십시오.
표준 SQL에서는 첫 번째 조건은 이전의 SQL 문에 대해 반환 된 SQLSTATE
값에 관련합니다. MySQL에서는이 보장되어 있지 않기 때문에, 주요 오류를 얻으려면 다음과 같이 수 없습니다.
GET DIAGNOSTICS CONDITION 1 @errno = MYSQL_ERRNO;
대신 다음과 같이합니다.
GET DIAGNOSTICS @cno = NUMBER; GET DIAGNOSTICS CONDITION @cno @errno = MYSQL_ERRNO;