MySQL游标的使用
A simple cursor of mysql
step1:
新建表tb_test;
create table tb_test(
id int
);
insert into tb_test values ('1');
insert into tb_test values ('2');
insert into tb_test values ('3');
step2:
声明存储过程sp_test;
delimiter $$
create procedure sp_test()
BEGIN
declare tmp int default 0;
declare sum int default 0;
declare done int default -1;
/* 声明游标 */
declare myCursor cursor for select id from tb_test;
/* 当游标到达尾部时,mysql自动设置done=1 */
declare continue handler for not found set done=1;
/* 打开游标 */
open myCursor;
/* 循环开始 */
myLoop: LOOP
/* 移动游标并赋值 */
fetch myCursor into tmp;
if done = 1 then
leave myLoop;
end if;
/* do something */
set sum = sum + tmp;
/* 循环结束 */
end loop myLoop;
insert into tb_test values(sum);
/* 关闭游标 */
close myCursor;
END
$$
delimiter ;
step3:
call sp_test();
select * from tb_test();
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 6 |
+----+
分享到:
相关推荐
Mysql游标(循环操作)
mysql游标使用的整个过程为: 1.创建游标 代码如下:DECLARE calc_bonus CURSOR FOR SELECT id, salary, commission FROM employees; 2.打开游标 代码如下:OPEN calc_bonus; 3.使用游标 代码如下:FETCH calc_bonus ...
NULL 博文链接:https://yuhuiblog695685688425687986842568269.iteye.com/blog/2424995
今天分享下自己对于Mysql存储过程的认识与了解,这里主要说说大家常用的游标加循环的嵌套使用
众所周知,MySQL中的游标循环操作常用的有三种,LOOP,REPEAT,WHILE.三种循环,方式大同小异.以前从没用过,所以记下来,方便以后查阅. 1.REPEAT 代码如下: REPEAT Statements; UNTIL expression END REPEAT demo ...
[mysql游标的用法及作用] 例子: 当前有三张表A、B、C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中; 常规思路就是将B中查询出来然后通过一个update语句来更新C表就可以了,但是B表中有...
本文实例讲述了MySQL游标概念与用法。分享给大家供大家参考,具体如下: 1、游标的概念(Cursor) 一条sql,对应N条资源,取出资源的接口,就是游标,沿着游标,可以一次取出1行。如果开发过安卓的同学应该知道有一...
在MySQL当中的游标其实和java中的iterator迭代器这种类型类似,都是一个集合,然后通过循环遍历,游标现在是用来处理结果集的,首先要设置一个游标的结束
本节主要介绍了Mysql存储过程循环内如何嵌套使用游标,详细实现如下,需要的朋友不要错过
给我们喜欢用mysql的朋友们更喜欢mysql的理由了,语法上和PL/SQL有差别,不过搞过编程的人都知道,语法不是问题,关键是思想,大致了解语法后,就从变量定义,循环,判断,游标,异常处理这个几个方面详细学习了。...
mysql存储过程 多个游标循环(依次执行,非嵌套循环)REPEAT循环。有需要的可自行下载。
1、索引 ·什么是索引 ·索引的基本原理 ·索引的基本写法 ·索引的分类 ... 比如你判断一个班上的同学数学成绩怎么样,你就可能用游标,先把全部的成绩查询到游标中,之后再循环一条条进行判断处理。
本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。
游标造成的问题有很多,比如延长锁问题,无法缓存执行计划以及加大内存与CPU开销问题等。许多T-SQL程序员和DBA都不知道如何不使用游标而成功记录循环。在本文中,我将分享一些不使用游标而实现循环功能的方法。
mysql声明游标的方法: 1、声明变量和游标 declare result varchar(3000); declare flag1 varchar(100); DECLARE done INT DEFAULT FALSE; declare cur1 CURSOR FOR SELECT flag from bmlx; 2、变量赋值 DECLARE ...
一个简单易理解的mysql存储过程 循环表操作 使用游标