mysql讀取一張表中的字段循環插入另一張表

    由於業務需求,需要修改歷史數據,一張表是病區信息,裏面包括所有病區,另一張表是病區的功能配置,業務代碼只能完成在
添加病區並初始化時顯示新的功能,但是舊病區無法顯示新功能,簡單的說就是添加新功能時只能添加到新病區,而舊病區的必須手
動添加到數據庫,因此,就有了下面的存儲過程來完成這個需求。描述的不是很清楚,可以用來當作存儲過程實例來看。

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();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章