WEB开发网
开发学院数据库MySQL MySQL 5.0新特性教程 存储过程:第四讲 阅读

MySQL 5.0新特性教程 存储过程:第四讲

 2005-10-31 16:42:19 来源:WEB开发网   
核心提示: 4. Sample Problem: Log Of ErrorsCREATE PROCEDURE p22 (parameter1 INT)BEGINDECLARE EXIT HANDLER FOR 1216INSERT INTO error_log VALUES(CONCAT('Time: ',cu

4. Sample Problem: Log Of Errors

CREATE PROCEDURE p22 (parameter1 INT)
BEGIN

DECLARE EXIT HANDLER FOR 1216
INSERT INTO error_log VALUES
(CONCAT('Time: ',current_date,
'. Foreign Key Reference Failure For
Value = ',parameter1));
INSERT INTO t3 VALUES (parameter1);
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(和PHP搭配之最佳组合)允许两种处理器,一种是EXIT处理,我们刚才所用的就是这种。另一种就是我们将要演示的,CONTINUE处理,它跟EXIT处理类似,不同在于它执行后,原主程序仍然继续运行,那么这个复合语句就没有出
口了。

上一页  1 2 3 4 5 6 7  下一页

Tags:MySQL 特性 教程

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