zoukankan      html  css  js  c++  java
  • 学习mysql存储过程,并且用到游标

    定义一个存储过程,用到游标,从一个表中取值,插入到另外一个表中。
    drop procedure if exists search_test;
    create procedure search_test(in id int,out out_min_id varchar(200))
    begin
    declare finished boolean default 0 ;
    declare tmp varchar(200) ;
    declare s_test cursor for select r_id from A where n_code=id;  //定义游标
    declare continue handler for sqlstate '02000' set finished=1;   //定义结束标志
    open s_test;           //打开游标
    repeat             //循环
    FETCH s_test into tmp;
    if not finished then
    set out_min_id=tmp;
    insert into B(n_code) values(out_min_id);
    end if;
    until finished end repeat;
    close s_test;         //关闭游标
    select out_min_id;
    end

    mysql打印变量值用select 变量名的方式;

    用LOOP实现循环方式

    drop procedure if exists search_test;
    create procedure search_test(in id int,out out_min_id varchar(200))

    begin

    declare finished boolean default 0 ;
    declare tmp varchar(200) ;
    declare s_test cursor for select rf_id from urm_ipqam_frequency where network_code=id;
    declare continue handler for sqlstate '02000' set finished=1;
    open s_test;
    myloop:LOOP
    FETCH s_test into tmp;
    if finished then
    leave myloop;
    end if;
    set out_min_id=tmp;
    insert into urm_network_area_his(network_code) values(out_min_id);
    end loop myloop;
    close s_test;
    select out_min_id;
    end

  • 相关阅读:
    【Spring源码深度解析系列 】Spring整体架构
    【Spring Boot && Spring Cloud系列】在spring-data-Redis中如何使用切换库
    自定义异常
    Java IO
    多线程和虚拟机的宏观理解
    mybatis添加记录时返回主键id
    从JVM角度看i++ 与++i
    JVM指令集介绍
    jvm 指令集代码
    javap -c命令详解
  • 原文地址:https://www.cnblogs.com/penglei2011/p/3725741.html
Copyright © 2011-2022 走看看