mysql存储过程实例详解

mysql存储过程实例详解

ID:34724613

大小:73.18 KB

页数:10页

时间:2019-03-10

mysql存储过程实例详解_第1页
mysql存储过程实例详解_第2页
mysql存储过程实例详解_第3页
mysql存储过程实例详解_第4页
mysql存储过程实例详解_第5页
资源描述:

《mysql存储过程实例详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、MySQL存储过程使用实例详解本文介绍关于在MySQL存储过程游标使用实例,包括简单游标使用与游标循环跳出等方法例1、一个简单存储过程游标实例复制代码代码如下:DELIMITER$$DROPPROCEDUREIFEXISTSgetUserInfo$$CREATEPROCEDUREgetUserInfo(indate_daydatetime)----实例--存储过程名为:getUserInfo--参数为:date_day日期格式:2008-03-08--   BEGINdeclare_userNamevarchar(12);--用户名declare

2、_chineseint;--语文declare_mathint;   --数学declaredoneint;--定义游标DECLARErs_cursorCURSORFORSELECTusername,chinese,mathfromuserInfowheredatediff(createDate,date_day)=0;DECLARECONTINUEHANDLERFORNOTFOUNDSETdone=1;--获取昨天的日期ifdate_dayisnullthen  setdate_day=date_add(now(),interval-1day)

3、;endif;openrs_cursor;cursor_loop:loop  FETCHrs_cursorinto_userName,_chinese,_math;--取数据  ifdone=1then   leavecursor_loop;  endif;  --更新表  updateinfoSumsettotal=_chinese+_mathwhereUserName=_userName;endloopcursor_loop;closers_cursor;   END$$DELIMITER; 例2、存储过程游标循环跳出现在MySQL的存储过程

4、中,游标操作时,需要执行一个conitnue的操作.众所周知,MySQL中的游标循环操作常用的有三种,LOOP,REPEAT,WHILE.三种循环,方式大同小异.以前从没用过,所以记下来,方便以后查阅.1.REPEAT复制代码代码如下:REPEAT   Statements; UNTILexpressionENDREPEATdemoDECLAREnumINT;DECLAREmy_string VARCHAR(255);REPEATSET my_string=CONCAT(my_string,num,',');SET num=num+1; UNTI

5、Lnum<5ENDREPEAT;2.WHILE复制代码代码如下:WHILEexpressionDO   Statements;ENDWHILEdemoDECLAREnumINT;DECLAREmy_string VARCHAR(255);SETnum=1;SETstr=''; WHILEnum 10DOSET my_string=CONCAT(my_string,num,',');SET num=num+1;ENDWHILE;3.LOOP(这里面有非常重要的ITERATE,LEAVE) 代码如下复制代码DECLAREnum INT;D

6、ECLAREstr VARCHAR(255);SETnum=1;SETmy_string=''; loop_label: LOOPIF num<10THEN     LEAVE loop_label;ENDIF;SET num=num+1;IF(nummod3)THEN     ITERATE loop_label;ELSESET my_string=CONCAT(my_string,num,',');ENDIF;ENDLOOP; PS:可以这样理解ITERATE就是我们程序中常用的contiune,而ITERATE就是break.当然在MySQ

7、L存储过程,需要循环结构有个名称,其他都是一样的.例3,mysql存储过程中使用多游标先创建一张表,插入一些测试数据:复制代码代码如下:DROPTABLEIFEXISTSnetingcn_proc_test;CREATETABLE`netingcn_proc_test`( `id`INTEGER(11)NOTNULLAUTO_INCREMENT, `name`VARCHAR(20), `password`VARCHAR(20), PRIMARYKEY(`id`))ENGINE=InnoDB;insertintonetingcn_proc_test

8、(name,password)values('procedure1','pass1'),('procedure2','pass2'),(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。