mysql 游标

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 744

大家好,今天记录一下项目中使用的mysql游标技术,可以使用游标的循环控制,实现一些批量更新数据的操作,那接下来请大家跟我一起来:


下面是一段根据游标变量对资金表数据进行批量更新的一个操作


-- 如果存在存储过程test,则进行删除 DROP PROCEDURE IF EXISTS test; -- 创建存储过程 CREATE PROCEDURE test() -- 开始标记 BEGIN -- 声明变量tmp,默认值为0 declare tmp int default 0; -- 声明变量done,默认值为-1 declare done int default -1; -- 声明游标myCursor, 游标值为user表中uid,可以有很多个 DECLARE myCursor CURSOR FOR SELECT uid FROM user; -- 声明一个控制器 declare continue handler for not found set done=1; -- 打开游标 OPEN myCursor; -- 标记  myloop : LOOP -- 将游标的值变更到tmp变量中,如果done=1,则离开标记  FETCH myCursor INTO tmp;  if done = 1 then  leave myloop;  end if;  SET @uid = tmp;  -- 获取差额  SET @cha = (select money - usedmoney from money where uid = @uid); -- 将差额和uid进行显示  SELECT @cha, @uid;  -- 修改资金表  update money set totalmoney = totalmoney + @cha where uid = @uid;   -- 结束标记  END LOOP myloop; -- 关闭游标  CLOSE myCursor; END -- 调用存储过程 CALL test();
本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。

我有话说: