码迷,mamicode.com
首页 > 数据库 > 详细

mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破

时间:2016-08-09 00:04:18      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:

这一节课,沈老师带我们了解事务的异常

  什么是异常?

  我们先插入一组数据:

insert into user_balance(user_id,user_money) values (3,10.5);

  这个是正常的。但是我们把插入的user_money的值故意弄错:如下

insert into user_balance(user_id,user_money) values (3,‘abc’);

  那么我们会得到一个ERR

  技术分享

.

  这个错误是如果报出来的呢?老师直接用工具新建一个存储过程来给我们演示: 

BEGIN
	start TRANSACTION;
	insert into user_balance(user_id,user_money) values(2,22;)

END;

   按上面的存储过程,我们随便如何CALL,都不会插入数据。必须显式的写上COMMIT,数据才会被插入。

BEGIN
	start TRANSACTION;	#开启事务
	insert into user_balance(user_id,user_money) values(2,22);
	COMMIT;
END

   老师演示错误的示范,我这里就不记录了。

下面来说说自定义异常处理:

格式:declare XXX1 handler for xxx2 执行sql;

  XXX1有continue 和 exit 还有 undo。

  XXX2有 sqlstate、sqlwarning、notfound、sqlexception

  显式错误的命令:

show errors #显式最后一个执行语句所产生的错误

  例如:

BEGIN
    
    declare CONTINUE HANDLER FOR SQLEXCEPTION show errors;
    insert into user_balance(user_id,user_money) values(4,‘aaa’); #错误执行
    insert into user_balance(user_id,user_money) values(4,24); #能够执行
END

  今天自定义异常处理课程例子:

  技术分享

 

  

mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破

标签:

原文地址:http://www.cnblogs.com/xz1024/p/5751378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!