灵魂腐蚀 发表于 2015-1-16 20:10:34

MYSQL教程之MySQL的存储历程写法和"Cursor"的利用

首先我们要知道,或许有一项技术存在很多理由让我们可以选择使用MySQL学习教程,但是让我们不使用它往往只要有一个理由就足够了。本文中先容了一个MySQL的存储历程,个中触及Cursor的利用,示比方下:<Pstyle="TEXT-INDENT:2em">CREATEPROCEDURE`justifyGroupNum`()NOTDETERMINISTICSQLSECURITYDEFINERCOMMENTBEGIN/*howtorun:calljustifyGroupNum()*/DECLAREp_group_idint;declarep_numint;declarestopFlagint;DECLAREcursor_nameCURSORFORselectc_group_id,count(*)asnumfrom`t_group_member`wherec_validin(3,4)groupbyc_group_id;DECLARECONTINUEHANDLERFORNOTFOUNDsetstopFlag=1;OPENcursor_name;REPEATFETCHcursor_nameINTOp_group_id,p_num;beginupdatet_groupinfosetc_member_number=p_numwherec_group_id=p_group_id;end;UNTILstopFlag=1ENDREPEAT;CLOSEcursor_name;END;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">总结:<Pstyle="TEXT-INDENT:2em">1、注重设置游标的countinuehandler:DECLARECONTINUEHANDLERFORNOTFOUNDsetstopFlag=1;<Pstyle="TEXT-INDENT:2em">2、注重REPEAT和UTILE[中断前提]ENDREPEAT的利用,不然不会轮回;3、怎样RUN,输出并实行:calljustifyGroupNum()
使用它开发程序也是非常简单的。”

柔情似水 发表于 2015-1-17 23:45:22

原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!

小魔女 发表于 2015-1-21 11:29:25

对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。

再现理想 发表于 2015-1-30 17:10:23

其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!

不帅 发表于 2015-2-6 14:20:15

两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书

分手快乐 发表于 2015-2-16 11:19:46

我们学到了什么?思考问题的时候从表的角度来思考问

精灵巫婆 发表于 2015-3-5 06:36:19

groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。

兰色精灵 发表于 2015-3-12 00:00:42

从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。

蒙在股里 发表于 2015-3-19 16:53:51

如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。

愤怒的大鸟 发表于 2015-3-29 15:39:47

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
页: [1]
查看完整版本: MYSQL教程之MySQL的存储历程写法和"Cursor"的利用