虚拟主机域名注册-常见问题数据库问题 → 数据库问题

MySQL数据库的异常处理

  对于MySQL的异常处理:

  标准格式

  以下为引用的内容:

  DECLARE handler_type HANDLER FOR condition_value[,...] statement

  handler_type:

  CONTINUE

  | EXIT

  | UNDO --暂时不支持

  condition_value:

  SQLSTATE [VALUE] sqlstate_value

  | condition_name

  | SQLWARNING

  | NOT FOUND

  | SQLEXCEPTION

  | mysql_error_code

  condition_value细节

  1、MySQL ERROR CODE 列表

  如果需要查看更多的错误列表可以直接到MySQL安装路径下。

  比如我的/usr/local/mysql/share/mysql/errmsg.txt

  说明:SQLSTATE [VALUE] sqlstate_value这种格式是专门为ANSI SQL 和 ODBC以及其他的标准.

  并不是所有的MySQL ERROR CODE 都映射到SQLSTATE。

  2、假如不需要插入ERROR CODE,可以用速记条件来代替

  SQLWARNING 代表所有以01开头的错误代码

  NOT FOUND 代表所有以02开头的错误代码,当然也可以代表一个游标到达数据集的末尾。

  SQLEXCEPTION 代表除了SQLWARNING和NOT FOUND 的所有错误代码。

  3、具体示例:

  以下为引用的内容:

  create TABLE t (s1 int,primary key (s1));

  mysql> use t_girl

  Database changed

  mysql> create TABLE t (s1 int,primary key (s1));

  Query OK, 0 rows affected (0.00 sec)

  mysql>

  mysql>

  mysql> DELIMITER ||

  mysql> create PROCEDURE handlerdemo ()

  -> BEGIN

  -> DECLARE EXIT HANDLER FOR SQLSTATE ’23000’ BEGIN END; -- 遇到重复键值就退出

  -> SET @x = 1;

  -> insert INTO t VALUES (1);

  -> SET @x = 2;

  -> insert INTO t VALUES (1);

  -> SET @x = 3;

  -> END||

  Query OK, 0 rows affected (0.00 sec)

  mysql> DELIMITER ;

  mysql> call handlerdemo();

  Query OK, 0 rows affected (0.00 sec)

  mysql> select @x;

  +------+

  | @x |

  +------+

  | 2 |

  +------+

  1 row in set (0.00 sec)

  mysql> call handlerdemo();

  Query OK, 0 rows affected (0.00 sec)

  mysql> select @x;

  +------+

  | @x |

  +------+

  | 1 |

  +------+

  1 row in set (0.00 sec)

  mysql>




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:什么是SQL注入
下一篇:Mysql 复制设置的方法
  >> 相关文章
没有相关文章。
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部