示例
CREATE DEFINER=`root`@`localhost` PROCEDURE `getErrorMsg`()
BEGIN
-- 定义存储变量
DECLARE code CHAR(5) DEFAULT '';
DECLARE msg TEXT;
DECLARE result TEXT;
-- 声明异常处理
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
-- 获取异常code,异常信息
GET DIAGNOSTICS CONDITION 1
code = RETURNED_SQLSTATE, msg = MESSAGE_TEXT;
END;
-- 执行存储过的逻辑,这里随便插入一条记录
-- age的类型为tinyint(1),这里插入9999,模拟报错的情况
INSERT INTO student (name,age) VALUES('盖伦',9999);
IF code != '' THEN
-- 拼接异常code,异常信息
SET result = CONCAT('errorCode = ',code,', errorMessage = ',msg);
ELSE
-- 返回1
SET result = '1';
END IF;
-- 输入执行结果
SELECT result;
END
执行结果如下