반응형
MySQL - 저장 프로시저에서 예외를 두는 방법?
MySQL에서 저장 프로시저에서 예외를 생성하는 방법은?예를 들어,
CREATE PROCEDURE SALES()
BEGIN
STATEMENT...
STATEMENT...
STATEMENT...
IF (PRICE >= 500) THEN
/** THROWS AN EXCEPTION....
WHAT DO TO STOP THE PROCEDURE. **/
END IF;
STATEMENT...
STATEMENT...
STATEMENT...
END;
MySQL에서는 저장 프로시저에 예외를 둘 방법이 없다고 생각하지만 존재하지 않는 테이블에서 선택하여 오류를 강제로 발생시킬 수 있습니다.예를 들어,
IF (PRICE > 500) THEN
/*throw the error here*/
SELECT * FROM price_greater_than_500_in_throw_exception;
END IF;
좀 더 우아한 방법이 없을까요?
감사해요.
MySQL 5.5부터는 SIGNAL과 REASEAL을 사용하여 오류를 처리할 수 있습니다.그 이전에는 MySQL의 오류를 처리할 방법이 없었습니다.유일한 방법은 잘못된 쿼리를 실행하는 것입니다(예: 기존 테이블이 아닌 테이블에 삽입).
다음은 버전 5.5 이상에서 작동하는 mysql에서 예외를 던지는 방법의 예입니다.
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Custom error';
자세한 내용은 여기 https://dev.mysql.com/doc/refman/5.5/en/signal.html 에서 확인할 수 있습니다.
언급URL : https://stackoverflow.com/questions/9131379/mysql-how-to-throw-exception-in-stored-procedure
반응형
'programing' 카테고리의 다른 글
CSS @media 규칙을 인라인으로 넣을 수 있습니까? (0) | 2023.09.17 |
---|---|
파워셸에서 오디오 레벨을 변경하시겠습니까? (0) | 2023.09.17 |
제품을 선택하고 카테고리를 계층적으로 결합 (0) | 2023.09.17 |
JQuery는 내부 텍스트를 변경하지만 html은 유지합니다. (0) | 2023.09.17 |
12c에서 데이터 펌프 덤프 위치 찾기 (0) | 2023.09.17 |