반응형
MySQL은 오류가 발생할 경우 직접 오류를 처리하는 방법을 제공한다. 형식은 다음과 같다.
DECLARE 액션 HANDLER FOR 오류조건 처리할문장;
- 액션 : CONTINUE - [처리할문장] 부분이 처리됨 / EXIT - 프로시저 종료
- 오류 조건 : 어떤 오류를 설정할 것인지 지정.
- 처리할 문장 : 처리할 문장이 여러개라면 BEGIN~END로 묶을 수 있다.
조건 핸들러의 각 형식의 자세한 설명을 알고 싶다면 아래 링크를 참고한다.
오류조건과 같은 오류가 발생하면 액션에 따라 처리할 문장이 실행된다. 만약 DECLARE가 없다면 MySQL이 직접 오류 메시지를 발생하는 것이다.
예시를 보자. 1146은 테이블이 없을 경우 발생하는 오류 코드다. 6번째 줄의 Select 안에 noTable이라는 테이블이 존재하지 않아서 DECLARE행이 실행된 것이다. 처리할 문장인 SELECT '테이블이 없닷' 이 실행되어 결과창에 그대로 출력된다.
현재 코드의 오류를에 대한 코드를 알고 싶다면 아래 SQL문을 실행하면된다.
SHOW ERRORS; -- 오류 메세지를 Level, Code, Message 순으로 알려줌
SHOW WARNNINGS; -- 경고에 대한 코드와 메시지 출력
SHOW COUNT(*) ERRORS; -- 발생된 오류의 개수를 출력
다양한 오류 코드와 상태 코드를 알고싶다면 아래 링크를 참고하자.(MySQL 5.7 버전)
▷https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html
출처: https://dang-dang12.tistory.com/28?category=776015 [🌷박튤립 장벚꽃🌸]
반응형
'DataBase > Mysql' 카테고리의 다른 글
[MySQL] auto_increment 삭제, 초기화 (how to remove auto_increment in mysql) (0) | 2020.01.03 |
---|---|
[MySQL] foreign key(외래키) 추가, 삭제, 확인 방법 (0) | 2019.12.23 |
MySQL 동적SQL (0) | 2019.12.13 |
MySQL문자를 숫자로 숫자를 문자로 데이터 형 변환 (cast, convert) (0) | 2019.12.13 |
[MySQL] error FK에러 cannot add foreign key constraint 해결 (0) | 2019.12.07 |