利用mysql存储过程循环插入新数据并更新

DROP PROCEDURE IF EXISTS excute_job_v340;

create procedure excute_job_v340()

begin 

        declare rdevid int; //声明参数

        declare rech_id int;

        declare slot int;

        declare new_rech_id int;

        declare new_price DOUBLE;//声明参数

        declare done INT DEFAULT FALSE;////声明结束标识参数

    --  声明游标

        DECLARE rdevrech_id CURSOR FOR

                select r.id as rdevid,r.rechargeconfig_id as rech_id,r.slot_no as slot from b_device_tbl dev

                LEFT JOIN r_device_rechargeconfig_tbl r on dev.id= r.device_id

                where dev.dev_typedef_id =7 and dev.masterid is not NULL  and r.rechargeconfig_type=4 and r.is_deleted=0 and                 r.slot_no is not  NULL;

-- 将结束标志绑定到游标

        DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

-- 打开游标

        OPEN  rdevrech_id;   

-- 遍历

        read_loop: LOOP

-- 取值

                FETCH  NEXT from rdevrech_id INTO rdevid,rech_id,slot;

                IF done THEN

                        LEAVE read_loop;

                END IF;// 结束判断

                select price into new_price from c_device_rechargeconfig_item_tbl where rechargeconfig_id =rech_id limit 1;

                INSERT INTO `c_device_rechargeconfig_tbl` (  `type`, `style_id`, `is_default`, `dev_type_code`, `is_deleted`,                 `create_time`, `slot_no`)

                VALUES ( '4', NULL, '0', '0', '0', '2019-08-19 15:59:24',slot );

                select max(id) into new_rech_id from c_device_rechargeconfig_tbl ;

                INSERT INTO  `c_device_rechargeconfig_item_tbl` (  `price`, `goods`, `description`, `is_deleted`, `create_time`,                         `rechargeconfig_id` )

                        VALUES (  new_price,new_price, '0.00', '0', '2019-08-19 15:59:24', new_rech_id);

                update r_device_rechargeconfig_tbl set rechargeconfig_id=new_rech_id where id=rdevid;

        END LOOP;

        CLOSE rdevrech_id;

end;

call excute_job_v340() ;//调用执行

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容