当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机四级指导:MySQL5的异常处理
发布时间:2010/3/24 19:29:34 来源:城市学习网 编辑:admin

  MySQL5的异常处理
  1. Sample Problem: Log Of Failures 问题样例:故障记录当INSERT失败时,我希望能将其记录在日志文件中我们用来展示出错处理的问题样例是很普通的。我希望得到错误的记录。当INSERT失败时,我想在另一个文件 ...
  1. Sample Problem: Log Of Failures 问题样例:故障记录
  当INSERT失败时,我希望能将其记录在日志文件中我们用来展示出错处理的问题样例是很普通的。我希望得到错误的记录。当INSERT失败时,我想在另一个文件中记下这些错误的,例如出错时间,出错原因等。我对插入特别感兴趣的原因是它将违反外键关联的约束
  2. Sample Problem: Log Of Failures
  mysql CREATE TABLE t2
  1 INT, PRIMARY KEY )
  engine=innodb;//
  mysql CREATE TABLE t3 ,
  FOREIGN KEY REFERENCES t2 )
  engine=innodb;//
  mysql INSERT INTO t3 VALUES ;//
  ...
  ERROR 1216 : Cannot add or update a child row: a foreign key
  constraint fails(这里显示的是系统的出错)
  我开始要创建一个主键表,以及一个外键表。我们使用的是InnoDB,因此外键关联检查是打开的。然后当我向外键表中插入非主键表中的值时,动作将会失败。当然这种条件下可以很快找到错误号1216。
  3. Sample Problem: Log Of Failures
  CREATE TABLE error_log )//
  下一步就是建立一个在做插入动作出错时存储错误的表。
  4. Sample Problem: Log Of Errors
  CREATE PROCEDURE p22
  BEGIN
  DECLARE EXIT HANDLER FOR 1216
  INSERT INTO error_log VALUES
  );
  INSERT INTO t3 VALUES ;
  END;//
  上面就是我们的程序。这里的第一个语句DECLARE EXIT HANDLER是用来处理异常的。意思是如果错误1215发生了,这个程序将会在错误记录表中插入一行。EXIT意思是当动作成功提交后退出这个复合语句。
  5. Sample Problem: Log Of Errors
  CALL p22 //
  调用这个存储过程会失败,这很正常,因为5值并没有在主键表中出现。但是没有错误返回因为出错处理已经包含在过程中了。t3表中没有增加任何东西,但是error_log表中记录下了一些,这就告诉我们INSERT into table t3动作失败。
  DECLARE HANDLER syntax 声明异常处理的语法
  DECLARE
  HANDLER FOR

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved