这一节课,沈老师带我们了解事务的异常
什么是异常?
我们先插入一组数据:
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
今天自定义异常处理课程例子:
时间: 2024-10-07 02:11:12