mysql 异常处理实例
1. 语法: <div class="cnblogs_code"> condition_value handler_action: ?If one of these conditions occurs,the specified?statement?executes.?statement?can be a simple statement such as? http://dev.mysql.com/doc/refman/5.0/en/declare-handler.html 2. 实例 实例1: COMMENT COMMENT INNODB CHARSETUTF8 COMMENT<span style="color: #0000ff;">DROP <span style="color: #0000ff;">PROCEDURE <span style="color: #0000ff;">IF <span style="color: #808080;">EXISTS<span style="color: #000000;"> sp_do_insert;<span style="color: #0000ff;">CREATE <span style="color: #0000ff;">PROCEDURE<span style="color: #000000;"> sp_do_insert( <span style="color: #808080;">IN in_param1 <span style="color: #0000ff;">int<span style="color: #000000;">,<span style="color: #808080;">IN in_param2 <span style="color: #0000ff;">int<span style="color: #000000;">,OUT out_status <span style="color: #0000ff;">tinyint<span style="color: #000000;"> ) <span style="color: #0000ff;">BEGIN <span style="color: #0000ff;">DECLARE <span style="color: #0000ff;">CONTINUE HANDLER <span style="color: #0000ff;">FOR <span style="color: #800000; font-weight: bold;">1062 <span style="color: #0000ff;">SET out_status <span style="color: #808080;">= <span style="color: #800000; font-weight: bold;">1<span style="color: #000000;">; <span style="color: #0000ff;">SET out_status <span style="color: #808080;">= <span style="color: #800000; font-weight: bold;">0<span style="color: #000000;">; <span style="color: #0000ff;">INSERT <span style="color: #0000ff;">INTO<span style="color: #000000;"> tb1(field1,field2) <span style="color: #0000ff;">VALUES<span style="color: #000000;"> (in_param1,in_param2); <span style="color: #0000ff;">IF out_status<span style="color: #808080;">=<span style="color: #800000; font-weight: bold;">1 <span style="color: #0000ff;">THEN <span style="color: #0000ff;">select<span style="color: #000000;"> in_param1,in_param2; <span style="color: #0000ff;">END <span style="color: #0000ff;">IF<span style="color: #000000;">; <span style="color: #0000ff;">END<span style="color: #000000;">; CALL sp_do_insert(<span style="color: #800000; font-weight: bold;">2,<span style="color: #800000; font-weight: bold;">200,<span style="color: #008000;">@out<span style="color: #000000;">); 实例2:begin 。。。end块异常处理 <span style="color: #0000ff;">CREATE <span style="color: #0000ff;">TABLE<span style="color: #000000;"> tb1(field1 <span style="color: #0000ff;">INT <span style="color: #808080;">NOT <span style="color: #0000ff;">NULL COMMENT <span style="color: #ff0000;">'<span style="color: #ff0000;">id<span style="color: #ff0000;">'<span style="color: #000000;">,<span style="color: #0000ff;">PRIMARY <span style="color: #0000ff;">KEY<span style="color: #000000;">(field1))ENGINE<span style="color: #808080;">=INNODB <span style="color: #0000ff;">DEFAULT CHARSET<span style="color: #808080;">=UTF8 COMMENT <span style="color: #808080;">=<span style="color: #ff0000;">'<span style="color: #ff0000;">临时测试表<span style="color: #ff0000;">' <span style="color: #0000ff;">DROP <span style="color: #0000ff;">PROCEDURE <span style="color: #0000ff;">IF <span style="color: #808080;">EXISTS<span style="color: #000000;"> sp_do_insert; <span style="color: #0000ff;">CREATE <span style="color: #0000ff;">PROCEDURE<span style="color: #000000;"> sp_do_insert( <span style="color: #808080;">IN in_param1 <span style="color: #0000ff;">int<span style="color: #000000;">,<span style="color: #808080;">IN in_param3 <span style="color: #0000ff;">int<span style="color: #000000;">,<span style="color: #808080;">IN in_param4 <span style="color: #0000ff;">int<span style="color: #000000;">,OUT out_status1 <span style="color: #0000ff;">tinyint<span style="color: #000000;">,OUT out_status2 <span style="color: #0000ff;">tinyint<span style="color: #000000;"> ) <span style="color: #0000ff;">BEGIN
<span style="color: #0000ff;">DECLARE <span style="color: #0000ff;">CONTINUE HANDLER <span style="color: #0000ff;">FOR <span style="color: #800000; font-weight: bold;">1062 <span style="color: #0000ff;">SET out_status1 <span style="color: #808080;">= <span style="color: #800000; font-weight: bold;">1<span style="color: #000000;">; <span style="color: #0000ff;">SET out_status1 <span style="color: #808080;">= <span style="color: #800000; font-weight: bold;">0<span style="color: #000000;">; <span style="color: #0000ff;">INSERT <span style="color: #0000ff;">INTO tb1(field1,field2)<span style="color: #0000ff;">VALUES<span style="color: #000000;"> (in_param1,in_param2); <span style="color: #0000ff;">IF out_status1<span style="color: #808080;">=<span style="color: #800000; font-weight: bold;">1 <span style="color: #0000ff;">THEN
<span style="color: #0000ff;">END <span style="color: #0000ff;">IF<span style="color: #000000;">; <span style="color: #0000ff;">END<span style="color: #000000;">;
<span style="color: #0000ff;">SET out_status2 <span style="color: #808080;">= <span style="color: #800000; font-weight: bold;">0<span style="color: #000000;">; <span style="color: #0000ff;">INSERT <span style="color: #0000ff;">INTO tb1(field1,field2)<span style="color: #0000ff;">VALUES<span style="color: #000000;"> (in_param3,in_param4); <span style="color: #0000ff;">IF out_status2<span style="color: #808080;">=<span style="color: #800000; font-weight: bold;">1 <span style="color: #0000ff;">THEN
<span style="color: #0000ff;">END <span style="color: #0000ff;">IF<span style="color: #000000;">;
<span style="color: #0000ff;">END<span style="color: #000000;">; CALL sp_do_insert(<span style="color: #800000; font-weight: bold;">1,<span style="color: #800000; font-weight: bold;">100,<span style="color: #800000; font-weight: bold;">2,<span style="color: #008000;">@out1,<span style="color: #008000;">@out2<span style="color: #000000;">); <span style="color: #0000ff;">SELECT <span style="color: #008000;">@out1,<span style="color: #008000;">@out2<span style="color: #000000;">; <span style="color: #0000ff;">select <span style="color: #808080;">* <span style="color: #0000ff;">from tb1; 3. server error code http://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html? 常见errorcode
?SQLSTATE:?
?SQLSTATE:?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |