MySQL5的异常处理

2016-01-29 14:56 3 1 收藏

MySQL5的异常处理,MySQL5的异常处理

【 tulaoshi.com - MySQL 】

1. Sample Problem: Log Of Failures 问题样例:故障记录

当INSERT失败时,我希望能将其记录在日志文件中我们用来展示出错处理的问题样例是很普通的。我希望得到错误的记录。当INSERT失败时,我想在另一个文件中记下这些错误的信息,例如出错时间,出错原因等。我对插入特别感兴趣的原因是它将违反外键关联的约束

2. Sample Problem: Log Of Failures (2)

mysql CREATE TABLE t2

1 INT, PRIMARY KEY (s1))

engine=innodb;//

mysql CREATE TABLE t3 (s1 INT, KEY (s1),

FOREIGN KEY (s1) REFERENCES t2 (s1))

engine=innodb;//

mysql INSERT INTO t3 VALUES (5);//

...

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

ERROR 1216 (23000): Cannot add or update a child row: a foreign key

constraint fails(这里显示的是系统的出错信息)

我开始要创建一个主键表,以及一个外键表。我们使用的是InnoDB,因此外键关联检查是打开的。然后当我向外键表中插入非主键表中的值时,动作将会失败。当然这种条件下可以很快找到错误号1216。

3. Sample Problem: Log Of Failures

CREATE TABLE error_log (error_message

CHAR(80))//

下一步就是建立一个在做插入动作出错时存储错误的表。

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

CALL p22 (5) //

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

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

DECLARE

{ EXIT | CONTINUE }

HANDLER FOR

来源:http://www.tulaoshi.com/n/20160129/1494776.html

延伸阅读
测试环境.基本上数据是瞬间同步,希望对大家有帮助 RedHat ES 3 update 3 MYSQL 5.0.15 MYSQL数据同步备份 A服务器: 192.168.1.2 主服务器master B服务器: 192.168.1.3 副服务器slave A服务器设置 #mysql –u root –p mysqlGRANT FILE ON *.* TO backup@192.168.1.3 IDENTIFIED BY ‘1234'; mysqlexit 上...
标签: PHP
现在php和Mysql的黄金组合已经是开发动态网站的一个非常好的选择了,尤其对于我这样一个开源文化的支持者。经过长达两天的安装,屡错屡勇,终于安装成功。 下面是我根据自己的实际安装过程,整理的一个详细安装说明,希望对广大的LAMP爱好者有所帮助,避免把宝贵的时间浪费在没有任何意义的安装过程上面。,本文的最新版本请查...
使用自动化安装程序自动安装MySQL 新的MySQL 5.0用户可以使用MySQL安装向导和MySQL配置向导在Windows上安装Mysql.设计这两个向导的目的就是为了方便新用户能够很快的使用MySQL。在MySQL完全安装包中,MySQL安装向导和MySQL配置向导都是可用的,同时这两个向导在大部分标准的MySQL安装程序中被推荐使用。不使用这两个向导的例外包括用...
标签: MySQL mysql数据库
  首先说明一下,下面描述仅限于Win系统 其它系统我没试过,Mysql 自从4.1.1以后修改了用户密码的格式, 从16位增加到了41位, 采用了一种新的验证方法,但4.1以前的客户端协议不支持这种方法,所以造成了不能登临的后果.即使密码正确了不能正常登录,提示如下: #1250 - Client does not support authentication protocol requested by server; ...
标签: MySQL mysql数据库
MySql5.0以后均支持存储过程,最近有空,研究了一把这个。 格式: CREATE PROCEDURE 过程名 ([过程参数[,...]]) [特性 ...] 过程体 CREATE FUNCTION 函数名 ([函数参数[,...]]) RETURNS 返回类型 [特性 ...] 函数体 过程参数: [ IN | OUT | INOUT ] 参数名 参数类型 函数参数: 参数名 参数类型 返回类型:...

经验教程

752

收藏

29
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部