[sql] INSERT 문의 반환값과 에러 처리 방법

아래는 INSERT 문의 반환값을 확인하고 오류를 처리하는 예제입니다.

INSERT INTO products (product_name, price) VALUES ('New Product', 50);

IF (ROW_COUNT() > 0) THEN
    SELECT 'Insert successful';
ELSE
    SELECT 'Insert failed';
END IF;

위의 예제는 INSERT 문을 실행하고, ROW_COUNT() 함수로 영향을 받은 레코드 수를 확인한 후 적절한 메시지를 출력합니다.

또한, 에러 처리를 위해 MySQL에서는 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION를 사용하여 예외를 처리할 수 있습니다. 아래는 이를 이용한 예제입니다.

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
    GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT;
    SELECT CONCAT('Error: ', @errno, ' - ', @text) AS errorMessage;
END;

INSERT INTO products (product_name, price) VALUES ('New Product', 50);

위의 예제는 SQLEXCEPTION을 처리하기 위해 핸들러를 선언하고, INSERT 문을 실행하여 발생한 예외를 처리하는 방법을 보여줍니다.

참고 문헌: