MySQL中的游标
点击关注上方“SQL数据库开发”,
设为“置顶或星标”,第一时间送达干货
DECLARE 游标名称 CURSOR FOR SQL语句;
2、打开游标
OPEN 游标名称;
FETCH 游标名称 INTO 变量名称[,变量名称];
CLOSE 游标名称;

CREATE PROCEDURE PROC1()BEGIN-- 定义两个存放结果的变量DECLARE NAME VARCHAR(20);DECLARE ADDR VARCHAR(50);-- 声明游标DECLARE MY CURSOR FOR SELECT 姓名,地址 FROM customers;-- 打开游标OPEN MY;-- 获取结果FETCH MY INTO NAME,ADDR;-- 这里是为了显示获取结果SELECT NAME,ADDR;-- 关闭游标CLOSE MY;END;
CALL PROC1();
CREATE PROCEDURE PROC2()BEGIN-- 定义两个存放结果的变量DECLARE FLAG INT DEFAULT 0;DECLARE NAME VARCHAR(20);DECLARE ADDR VARCHAR(50);-- 声明游标DECLARE MY CURSOR FOR SELECT 姓名,地址 FROM customers;DECLARE CONTINUE HANDLER FOR NOT FOUND SET FLAG=1;-- 打开游标OPEN MY;-- 循环体部分L1:LOOP-- 获取结果FETCH MY INTO NAME,ADDR;IF FLAG=1 THENLEAVE L1;END IF;-- 这里是为了显示获取结果INSERT INTO cus VALUES(NAME,ADDR);-- 关闭游标END LOOP; -- 结束循环CLOSE MY;END;
然后我们执行这个存储过程,并查询cus表里的数据
CALL PROC2();SELECT * FROM cus;

最后给大家分享我写的SQL两件套:《SQL基础知识第二版》和《SQL高级知识第二版》的PDF电子版。里面有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。
有需要的读者可以下载学习,在下面的公众号「数据前线」(非本号)后台回复关键字:SQL,就行
数据前线
后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群
推荐阅读
评论

