由於業務需求,需要修改歷史數據,一張表是病區信息,裏面包括所有病區,另一張表是病區的功能配置,業務代碼只能完成在 添加病區並初始化時顯示新的功能,但是舊病區無法顯示新功能,簡單的說就是添加新功能時只能添加到新病區,而舊病區的必須手 動添加到數據庫,因此,就有了下面的存儲過程來完成這個需求。描述的不是很清楚,可以用來當作存儲過程實例來看。 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();
mysql讀取一張表中的字段循環插入另一張表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.