• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql 存储过程里面 怎么对所有错误做一个统一的处理呢

mysql 搞代码 7年前 (2018-06-05) 104次浏览 已收录 0个评论

mysql 存储过程里面 如何对所有异常做一个统一的处理呢?
我在网上看到 DECLARE CONTINUE HANDLER FOR SQLSTATE ‘02000’ BEGIN …… END
都是这样处理的,在begin end里面写处理sql以及业务逻辑。

但是这里有一个就是他指定了 SQLSTATE为02000,如果打比方,我这里对所有sqlstate错误进行统一处理呢,该如何写如何实现?

——解决方案——————–
详细说明要求
——解决方案——————–
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

查一下手册就知道了。
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
——解决方案——————–
create PROCEDURE a(ia int )
begin
declare exit handler for sqlexception rollback;
start TRANSACTION;
insert into tablename values(ia+1,’2009-01-01 10:00:00′,’2009-01-02 11:00:00′);
insert into tablename values(ia+2,’2009-01-01 10:00:00′,’2009-01-02 11:00:00′);
insert into tablename values(ia,’2009-01-01 10:00:00′,’2009-01-02 11:00:00′);
— ROLLBACK; 
COMMIT ;
end

红色部分,遇到任何错误都回滚。
——解决方案——————–

探讨

create PROCEDURE a(ia int )
begin
declare exit handler for sqlexception rollback;
start TRANSACTION;
insert into tablename values(ia+1,’2009-01-01 10:00:00′,’2009-01-02 11:00:00′);
insert into ……


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql 存储过程里面 怎么对所有错误做一个统一的处理呢
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址