mysql写存贮过程,有异常处理语句吗?即如果执行出错,就执行错误处理代码?
-------------------
VB中有一种容错处理语句:
on error goto errhandler
--这里是代码
errhandler:
--下面是错误处理代码我想问,写sql存贮过程时,如何实现这种功能呢?即只要出现错误,就转到一段错误处理程序那里?
-------------------
VB中有一种容错处理语句:
on error goto errhandler
--这里是代码
errhandler:
--下面是错误处理代码我想问,写sql存贮过程时,如何实现这种功能呢?即只要出现错误,就转到一段错误处理程序那里?
解决方案 »
- MySql查询显示的问题
- update语句的询问!
- mysql重连接
- 由于mysql 触发器的原因,大批量循环更新数据,部分更新不到,求解。
- 一个多表查询, 一个条件, 为什么返回多条数据?
- mysql 排序时能用两个字段吗?
- update ipgroup a set flag=0 where a.id <>(select min(id) from ipgroup where iplong=a.iplong) 在MYSQL里不好运行
- 查询问题 关于not in的
- Mysql 求原代码分析???
- Mysql 1067 无法启动
- Class.forName("org.gjt.mm.mysql.Driver").newInstance()是不是不需要也能连接数据库啊?
- 一个棘手的问题
DECLARE handler_type HANDLER
FOR condition_value [, condition_value] ...
statementhandler_type:
CONTINUE
| EXIT
| UNDOcondition_value:
SQLSTATE [VALUE] sqlstate_value
| condition_name
| SQLWARNING
| NOT FOUND
| SQLEXCEPTION
| mysql_error_codemysql> CREATE TABLE test.t (s1 INT, PRIMARY KEY (s1));
Query OK, 0 rows affected (0.00 sec)mysql> delimiter //mysql> CREATE PROCEDURE handlerdemo ()
-> BEGIN
-> DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;
-> SET @x = 1;
-> INSERT INTO test.t VALUES (1);
-> SET @x = 2;
-> INSERT INTO test.t VALUES (1);
-> SET @x = 3;
-> END;
-> //
Query OK, 0 rows affected (0.00 sec)mysql> CALL handlerdemo()//
Query OK, 0 rows affected (0.00 sec)mysql> SELECT @x//
+------+
| @x |
+------+
| 3 |
+------+
1 row in set (0.00 sec)CREATE PROCEDURE p ()
BEGIN
DECLARE i INT DEFAULT 3;
retry:
REPEAT
BEGIN
DECLARE CONTINUE HANDLER FOR SQLWARNING
BEGIN
ITERATE retry; # illegal
END;
END;
IF i < 0 THEN
LEAVE retry; # legal
END IF;
SET i = i - 1;
UNTIL FALSE END REPEAT;
END;
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html