我不常使用mysql异常处理。但是我觉得有必要写下来。
标准符号法
以下是引用的内容:
为condition_value[声明handler_type处理程序,...]语句
handler _ type:
continue
| exit
| undo-暂时不支持
condition _ value:
SQLSTATE[value]SQLSTATE _ value
| condition _ name
| SQL warning
|找不到
| SQLEXCEPTION
| MySQL _ error _ code
条件_值详细信息
1.MySQL错误代码列表如果需要查看更多的错误列表,可以直接进入MySQL安装路径。
比如my/usr/local/MySQL/share/MySQL/errmsg . txt。
说明:SQLSTATE [VALUE] sqlstate_value是专门为ANSI SQL、ODBC等标准设计的。
并非所有的MySQL错误代码都映射到SQLSTATE。
2.如果不需要插入错误码,可以用速记条件代替。
SQLWARNING表示所有以01开头的错误代码。
NOT FOUND表示所有以02开头的错误代码,当然也可以表示光标到达数据集的末尾。
SQLEXCEPTION表示除SQLWARNING和NOT FOUND之外的所有错误代码。
3.具体例子:
以下是引用的内容:
创建表t (s1 int,主键(S1));
MySQL & gt;使用t_girl
数据库已更改
MySQL & gt;创建表t (s1 int,主键(S1));
查询正常,0行受到影响(0.00秒)
MySQL & gt;
MySQL & gt;
MySQL & gt;分隔符| |
MySQL & gt;create PROCEDURE handler demo()
-& gt;BEGIN
-& gt;为SQLSTATE & rsquo声明退出处理程序;23000 & rsquo开始结束;-遇到重复键值时退出
-& gt;SET @ x = 1;
-& gt;插入t值(1);
-& gt;SET @ x = 2;
-& gt;插入t值(1);
-& gt;SET @ x = 3;
-& gt;END||
查询正常,0行受影响(0.00秒)
MySQL & gt;分隔符;
MySQL & gt;调用handler demo();
查询正常,0行受到影响(0.00秒)
MySQL & gt;选择@ x;
+-+
| @ x |
+-+
| 2 |
+-+
集合中的1行(0.00秒)
MySQL & gt;调用handler demo();
查询正常,0行受到影响(0.00秒)
MySQL & gt;选择@ x;
+-+
| @ x |
+-+
| 1 |
+-+
集合中的1行(0.00秒)
MySQL & gt;
本文链接:http://www.123down.cn/gonglue/227246.html