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

MySQL5的异常处理

 2006-04-07 10:45:12 来源:WEB开发网   
核心提示:1. Sample Problem: Log Of Failures 问题样例:故障记录当INSERT失败时,我希望能将其记录在日志文件中我们用来展示出错处理的问题样例是很普通的,MySQL5的异常处理,我希望得到错误的记录,当INSERT失败时,动作将会失败,当然这种条件下可以很快找到错误号1216,我想在另一个文件

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);//

...

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);

1 2 3 4 5  下一页

Tags:MySQL 异常 处理

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