WEB开发网
开发学院数据库MySQL MySQL5的异常处理 阅读

MySQL5的异常处理

 2006-04-07 10:45:12 来源:WEB开发网   
核心提示: END;//上面就是我们的程序,这里的第一个语句DECLARE EXIT HANDLER是用来处理异常的,MySQL5的异常处理(2),意思是如果错误1215发生了,这个程序将会在错误记录表中插入一行,这个例子十分好,所以我把它拷贝到这里,EXIT意思是当动作成功提交后退出这个复合语句,5

END;//

上面就是我们的程序。这里的第一个语句DECLARE EXIT HANDLER是用来处理异常的。意思是如果错误1215发生了,这个程序将会在错误记录表中插入一行。EXIT意思是当动作成功提交后退出这个复合语句。

5. Sample Problem: Log Of Errors

CALL p22 (5) //

调用这个存储过程会失败,这很正常,因为5值并没有在主键表中出现。但是没有错误信息返回因为出错处理已经包含在过程中了。t3表中没有增加任何东西,但是error_log表中记录下了一些信息,这就告诉我们INSERT into table t3动作失败。

DECLARE HANDLER syntax 声明异常处理的语法

DECLARE

{ EXIT | CONTINUE }

HANDLER FOR

{ error-number | { SQLSTATE error-string } | condition }

SQL statement

上面就是错误处理的用法,也就是一段当程序出错后自动触发的代码。MySQL允许两种处理器,一种是EXIT处理,我们刚才所用的就是这种。另一种就是我们将要演示的,CONTINUE处理,它跟EXIT处理类似,不同在于它执行后,原主程序仍然继续运行,那么这个复合语句就没有出口了。

1. DECLARE CONTINUE HANDLER example CONTINUE处理例子

CREATE TABLE t4 (s1 int,primary key(s1));//

CREATE PROCEDURE p23 ()

BEGIN

DECLARE CONTINUE HANDLER

FOR SQLSTATE '23000' SET @x2 = 1;

SET @x = 1;

INSERT INTO t4 VALUES (1);

SET @x = 2;

INSERT INTO t4 VALUES (1);

SET @x = 3;

END;//

这是MySQL参考手册上的CONTINUE处理的例子,这个例子十分好,所以我把它拷贝到这里。通过这个例子我们可以看出CONTINUE处理是如何工作的。

上一页  1 2 3 4 5  下一页

Tags:MySQL 异常 处理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接