游标+存储过程

1,先查询结果集,然后遍历结果集
2,具体代码


# delimiter $$ 告诉解释器使用$$结尾
delimiter $$
DROP PROCEDURE IF EXISTS test_update;
create PROCEDURE test_update ()
begin
# 声明自定义变量
DECLARE tempPersonId BIGINT(20);
# 声明游标结束变量
DECLARE done INT DEFAULT 0;
# 声明游标 cr 以及游标读取到结果集最后的处理方式
DECLARE cur CURSOR FOR SELECT person_id FROM ding_syn_person;
DECLARE continue handler for not found set done = 1;
# 打开游标
OPEN cur;
# 循环
  users_loop: LOOP
     # 获取游标中值并赋值给变量
     FETCH cur INTO tempPersonId;
     # 判断游标是否到底,若到底则退出游标
     # 需要注意这个判断
     IF done=1 THEN
         LEAVE users_loop;
     END IF;
     # 需要执行的语句
     update ding_syn_person set company_phone = 19900000000+person_id WHERE person_id = tempPersonId;
  END LOOP users_loop;
-- 关闭游标
CLOSE cur;
end$$
# 最后重新定义为;
delimiter ;

# 执行存储过程
call test_update;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值