关于Mysql使用存储过程,并且使用游标的Demo
博客专区 > Kxvz 的博客 > 博客详情
关于Mysql使用存储过程,并且使用游标的Demo
Kxvz 发表于2年前
关于Mysql使用存储过程,并且使用游标的Demo
  • 发表于 2年前
  • 阅读 23
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

DELIMITER $$
/* Mysql 创建存储过程 名为:new_pro */
CREATE DEFINER=`root`@`localhost` PROCEDURE `new_pro`()
BEGIN
    /* 声明变量 并设定默认值 */
    Declare not_found int  default 0;
    Declare collectionId bigint;
    Declare children_collectionId bigint;
    /* 创建游标 通过查询表 channelcollection创建出游标 */
    Declare idCursor cursor for select id from channelcollection where name='a' or name='c';
    /* 异常处理,当发生异常的时候设定 not_found的值为1 */
    Declare continue handler for not found set not_found=1;
    /* 设定collectionId的值为 查询出的ID */
    set collectionId = (SELECT id FROM channelcollection where name='b' limit 1);
    /* 使用游标之前先打开游标 */
    open idCursor;
    /* 循环游标并且把循环出来的游标赋值给 children_collectionId */
    idCursor_loop: LOOP fetch idCursor into children_collectionId;
        if not_found=1 then
            leave idCursor_loop;
        else
            /* 将数据循环插入另外一个表 */
            insert into channelcollectionfamily values (collectionId,children_collectionId);
        end if;
    end LOOP idCursor_loop;
    /* 使用完之后关闭游标 */
    close idCursor;
END


标签: Mysql 
共有 人打赏支持
粉丝 11
博文 88
码字总数 25503
×
Kxvz
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: