资源描述:
《带你轻松接触mysql数据库的异常处理--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、带你轻松接触MySQL数据库的异常处理>> 对于MySQL的异常处理,本人不常用。不过我觉得还是有写下来的必要。 标准格式 DECLAREhandler_typeHANDLERFORcondition_value[,...]statement handler_type: CONTINUE
2、EXIT
3、UNDO--暂时不支持 condition_value: SQLSTATE[VALUE]sqlstate_value
4、condition_name
5、SQLySQLERRORCODE列表
6、如果需要查看更多的错误列表可以直接到MySQL安装路径下。 比如我的/usr/local/mysql/share/mysql/errmsg.txt 说明:SQLSTATE[VALUE]sqlstate_value这种格式是专门为ANSISQL和ODBC以及其他的标准. 并不是所有的MySQLERRORCODE都映射到SQLSTATE。 2、假如不需要插入ERRORCODE,可以用速记条件来代替 SQLITER
7、
8、 mysql>createPROCEDUREhandlerdemo() ->
9、;BEGIN ->DECLAREEXITHANDLERFORSQLSTATE23000BEGINEND;--遇到重复键值就退出 ->SETx=1; ->insertINTOtVALUES(1); ->SETx=2; ->insertINTOtVALUES(1); ->SETx=3; ->END
10、
11、 QueryOK,0roysql>DELIMITER; mysql>callhandlerdemo(); QueryOK,0roysql>
12、selectx; +------+
13、x
14、 +------+
15、2
16、 +------+ 1roysql>callhandlerdemo(); QueryOK,0roysql>selectx; +------+
17、x
18、 +------+
19、1
20、 +------+ 1roysql> 遇到错误继续的情况 mysql>truncatetablet; QueryOK,0roysql>DELIMITER$$ mysql>dropPROCEDUREIFex
21、ists`t_girl`.`handlerdemo`$$ QueryOK,0roysql>createDEFINER=`root``localhost`PROCEDURE`handlerdemo`() ->BEGIN ->DECLARECONTINUEHANDLERFORSQLSTATE23000BEGINEND; ->SETx=1; ->insertINTOtVALUES(1); ->SETx=2; ->insertINTOtVALUES(1); -&
22、gt;SETx=3; ->END$$ QueryOK,0roysql>DELIMITER; mysql>callhandlerdemo(); QueryOK,0roysql>selectx; +------+
23、x
24、 +------+
25、3
26、 +------+ 1roysql>callhandlerdemo(); QueryOK,0r12下一页>>>>这篇文章来自..,。oysql>selectx; +------+
27、x
28、 +------+
29、
30、3
31、 +------+ 1roysql> 我们可以看到,始终执行到最后。 当然,上面的SQLSTATE23000可以替换为1062。 警告: mysql>altertabletadds2intnotnull; QueryOK,0roysql>DELIMITER$$ mysql>dropPROCEDUREIFexists`t_girl`.`handlerdemo`$$ QueryOK,0roysql>createDEFINER=`root``localhost`PR
32、OCEDURE`handlerdemo`() ->BEGIN ->DECLARECONTINUEHANDLERFOR1062BEGINEND; ->DECLARECONTINUEHANDLERFORSQLITER; mysql>callhandlerdemo(); QueryOK,0roysql>select*fromt; +----+----