mysql读取一张表中的字段循环插入另一张表

来源:互联网 发布:virtuixomni淘宝 编辑:程序博客网 时间:2024/05/17 12:20
    由于业务需求,需要修改历史数据,一张表是病区信息,里面包括所有病区,另一张表是病区的功能配置,业务代码只能完成在添加病区并初始化时显示新的功能,但是旧病区无法显示新功能,简单的说就是添加新功能时只能添加到新病区,而旧病区的必须手动添加到数据库,因此,就有了下面的存储过程来完成这个需求。描述的不是很清楚,可以用来当作存储过程实例来看。DELIMITER //CREATE PROCEDURE insert_device_configuration()     BEGIN             DECLARE record_not_found INTEGER DEFAULT 0;             DECLARE wardName VARCHAR(50) DEFAULT '';             DECLARE isInsert INTEGER DEFAULT 0;             DECLARE my_cursor CURSOR FOR SELECT wardNo FROM `ward_info`;             DECLARE CONTINUE HANDLER FOR NOT FOUND SET record_not_found = 1;             OPEN my_cursor;             insertloop: LOOP                     FETCH my_cursor INTO wardName;                     IF record_not_found THEN                             LEAVE insertloop;                     END IF;                     SELECT COUNT(*) INTO isInsert FROM `device_configuration` WHERE wardNo = wardName AND moduleId = 21;                     IF isInsert = 0 THEN                     INSERT INTO `device_configuration` (wardNo,devType,moduleId,moduleOrder,hasLink,linkUrl,showCondition,isStaffUse,isPassword,isShowModule) VALUES (wardName,0,21,5,0,'',1,1,0,0);                     END IF;             END LOOP insertloop;             CLOSE my_cursor;     END     //DELIMITER ;CALL insert_device_configuration();
0 0
原创粉丝点击