获取mysql存储过程的异常信息

示例

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

 
执行结果如下

可以看到获取到的异常信息

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_52116015/article/details/131641251