存储过程:异常处理exit

drop table if exists t2;
drop table if exists t3;
drop table if exists error_log;

create table t2  
(
	s1 int, primary key (s1)
	)  
engine=innodb;


create table t3 
(
	s1 int, key (s1),  
  foreign key (s1) references t2 (s1)
)  
engine=innodb;

create table error_log 
(
	error_message char(80)
);

delete from t2;
delete from t3;
delete from error_log;

drop procedure if exists p22;

delimiter //

create procedure p22 (parameter1 int)  
begin  
  declare exit handler for 1452  
    insert into error_log values  
    	(concat('time: ',current_date,'. foreign key reference failure for value = ',parameter1));  
  insert into t3 values (parameter1);  
end;//  

delimiter ;

call p22(5);

select * from t2;
select * from t3;
select * from error_log;

/*
mysql> select * from t2;
Empty set (0.00 sec)

mysql> select * from t3;
Empty set (0.00 sec)

mysql> select * from error_log;
+---------------------------------------------------------------+
| error_message                                                 |
+---------------------------------------------------------------+
| time: 2012-08-20. foreign key reference failure for value = 5 |
+---------------------------------------------------------------+
1 row in set (0.00 sec)
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值