mySQL(9)-游标

解决的问题:

我有表A和表B,表Bnum的值有a.id+a.num组成。要实现需要遍历A表的所有id和Num.
其实用的不多,只有对每一行数据进行分门别类的计算时才会用到的。
 语法:1.创建
            2. 获取每一行数据
 

begin
--声明变量                             
           declare ssid int;            -- 自定义变量1 int ssid
declare ssname varchar(50); -- 自定义变量2 varhar(50) ssname
DECLARE done INT DEFAULT FALSE; -- 终止游标的变量bool done 初始值为false

DECLARE my_cursor CURSOR FOR select sid,sname from student;-- 定义一个游标  游标是从表A中选了id 和Num的
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- 如果没有数据了,done就为true
--循环体
open my_cursor; --打开名为my_cursor的游标
xxoo: LOOP --开始循环 相当于 for
fetch my_cursor into ssid,ssname; -- 取游标名为my_cursor里的一行的值赋值给ssid,ssname
if done then --如果done==true
leave xxoo; --leave==break 跳出这个循环
END IF;
insert into teacher(tname) values(ssname);-- 把变量ssname的值插入到teacher(tname)里面
end loop xxoo;--结束loop循环
close my_cursor;
end //

 

posted @ 2020-05-10 16:10  jasmineTang  阅读(56)  评论(0)    收藏  举报