mysql异常处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql异常处理相关的知识,希望对你有一定的参考价值。

 

CREATE DEFINER=`root`@`localhost` PROCEDURE `pr_exception`(i_date varchar(10),out o_error_code  varchar(200),out o_error_msg  varchar(200))
BEGIN

-- 自定义异常
DECLARE my_error CONDITION FOR SQLSTATE ‘45000‘;
 DECLARE EXIT HANDLER FOR my_error
 begin 
 set o_error_code:=-100,o_error_msg:=‘自定义错误信息‘;
 ROLLBACK ;
 end;
 
-- 定义异常
 DECLARE EXIT HANDLER for SQLEXCEPTION
  BEGIN
      GET DIAGNOSTICS CONDITION 1
        o_error_code = RETURNED_SQLSTATE, o_error_msg = MESSAGE_TEXT;
        rollback; -- 回滚
    END;

    
 START TRANSACTION; -- 开启事务

if i_date =‘0‘ then
SIGNAL my_error; -- 触发自定义异常
end if;

insert into acc_cellstk (fundid_) values(1);  -- 正确sql
insert into acc_cellstk (fundid_) values(‘s‘);  -- 错误sql 引发异常
 
commit;
END

  

以上是关于mysql异常处理的主要内容,如果未能解决你的问题,请参考以下文章

使用片段中的处理程序时出现非法状态异常

Java异常处理机制

java 反射代码片段

java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理(代码片段

MySql.Data.dll 中出现“MySql.Data.MySqlClient.MySqlException”类型的异常,但未在用户代码中处理

修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段