mysql储存过程写法 mysql存储过程语法( 二 )

优化五在执行insert语句之后 。要用mysql中自带的@error_count参数来判断插入数据是否成功 。方便开发人员跟踪执行结果 。如果该参数的值不为0 。表示插入失败 。那么我们就用一个返回参数值来表示操作失败 。修改之后的存储过程如下:
dropprocedureifexistspr_dealtestnum;delimiter//createprocedurepr_dealtestnum(inp_boxnumbervarchar(30),outp_resultint--0-succ,other-fail)pr_dealtestnum_label:begindeclarep_usertypeint;declarep_datacountint;selectcount(*)intop_datacountfromtb_testnum_tmpwhereboxnumber=p_boxnumber;ifp_datacount>0thenbeginselectusertypeintop_usertypefromtb_testnum_tmpwhereboxnumber=p_boxnumber;end;elsebeginsetp_result=1;leavepr_dealtestnum_label;end;endif;selectcount(*)intop_datacountfromtb_testnumwhereboxnumber=p_boxnumber;ifp_datacount=0thenbegininsertintotb_testnum(boxnumber,usertype)values(p_boxnumber,p_usertype);if@error_count<>0thenbeginsetp_result=3;end;elsebeginsetp_result=0;end;endif;end;elsebeginsetp_result=2;end;endif;leavepr_dealtestnum_label;end;//delimiter;select'createprocedurepr_dealtestnumok';总结从上面可以看出 。一个短短的存储过程 。就有这么多需要优化的地方 。看来存储过程的编写也不是一件很简单的事情 。平时在编写代码(不仅仅是存储过程)的时候 。一定要从功能、可读性、性能等多方面来考虑 。这样才能够写出优美的、具备较长生命周期的存储过程 。

推荐阅读