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