MySQL存储过程中捕获异常的方法
来源:互联网 发布:龙珠隔壁老王淘宝店 编辑:程序博客网 时间:2024/06/04 22:06
DECLARE处理程序的使用:
其中,
handler_type的取值范围:CONTINUE | EXIT | UNDO
condition_value的取值范围:SQLSTATE [VALUE] sqlstate_value | condition_name | SQLWARNING | NOT FOUND | SQLEXCEPTION | mysql_error_code
这个语句指定每个可以处理一个或多个条件的处理程序。如果产生一个或多个条件,指定的语句被执行。
对一个CONTINUE处理程序,当前子程序的执行在执行处理程序语句之后继续。
对于EXIT处理程序,当前BEGIN...END复合语句的执行被终止。
UNDO 处理程序类型语句还不被支持。
· SQLWARNING是对所有以01开头的SQLSTATE代码的速记。
· NOT FOUND是对所有以02开头的SQLSTATE代码的速记。
· SQLEXCEPTION是对所有没有被SQLWARNING或NOT FOUND捕获的SQLSTATE代码的速记。
注:除了SQLSTATE值,MySQL错误代码也不被支持。
例:
- delimiter $$
- CREATE TABLE `_t1` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `val1` varchar(20) DEFAULT NULL,
- `val2` int(11) DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=latin1$$
- DELIMITER $$
- CREATE DEFINER=`abandonship`@`%` PROCEDURE `P_TestException`()
- BEGIN
- declare _var,_err int default 0;
- declare continue handler for sqlexception, sqlwarning, not found set _err=1;
- insert into _t1(val1, val2) value(2012,'abandonship');
- if _err=1 then
- set _var = 2;
- end if;
- select case when _var = 2 then '出错了' else _var end;
- END
调用该存储过程将返回:出错了
0 0
- MySQL存储过程中捕获异常的方法
- MySQL存储过程中捕获异常的方法
- mysql 存储过程异常捕获
- oracle中存储过程的三种异常捕获方式
- SQL SERVERC存储过程中捕获异常
- 存储过程中异常捕获处理
- MySQL 捕获存储过程
- oracle存储过程异常捕获
- oracle存储过程异常捕获
- SQL2005存储过程中使用try catch捕获异常
- MSSQL:SQL SERVERC存储过程中捕获异常
- SQL SERVER中 存储过程使用事务与捕获异常
- oracle 存储过程 如何获得 捕获异常的内容
- mysql存储过程中异常处理
- IBM DB2 V9 存储过程异常捕获
- ORACLE 存储过程异常捕获并抛出
- Mysql的存储过程中的异常
- MySQL 存储过程的异常处理
- UITabBarController的使用心得
- 一步步学习SPD2010--第十一章节--处理母版页(8)--从母版页创建网页
- C语言常用宏定义
- Understanding Big and Little Endian Byte Order
- OGNL ValueStack
- MySQL存储过程中捕获异常的方法
- 教你如何注册proc文件系统
- 自定控件之属性提示
- 为文本数据创建索引
- python3 与 python2的 区别比较
- 主键生成策略为自动增长
- ios-高德地图的导入
- linux 下udp打洞原理分析
- MySQL API函数(c/c++)操作 “不常见错误”详解