CREATE DEFINER=`root`@`localhost` PROCEDURE `NewProc`()
BEGIN#Routine body goes here...DECLARE itemId varchar(64); -- idDECLARE AA varchar(64); -- 省DECLARE BB varchar(64); -- 市DECLARE CC varchar(64); -- 区DECLARE new_province varchar(64); -- 省DECLARE new_city varchar(64); -- 市DECLARE new_area varchar(64); -- 区-- 遍历数据结束标志DECLARE done INT DEFAULT FALSE;-- 游标DECLARE cur_account CURSOR FOR select id,province,city,area from startup_project_copy;-- 将结束标志绑定到游标DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;-- 打开游标OPEN cur_account; -- 遍历read_loop: LOOP-- 取值 取多个字段FETCH NEXT from cur_account INTO itemId,AA,BB,CC;IF done THENLEAVE read_loop;END IF;SET new_province = (SELECT Impcode FROM sys_area WHERE AreaID = AA);SET new_city = (SELECT Impcode FROM sys_area WHERE AreaID = BB);SET new_area = (SELECT Impcode FROM sys_area WHERE AreaID = CC);
-- 你自己想做的操作-- INSERT INTO test_city VALUE(new_province, new_city, new_area, itemId);-- 执行更新UPDATE startup_project_copy SET province = new_province, city= CONCAT(new_city,'000000'), area = CONCAT(new_area,'000000') WHERE id = itemId;
-- SET @UPDATE = CONCAT('UPDATE startup_project_copy SET province =', new_province,', city=', new_city, ', area =', new_area, ' WHERE id = ',id);
-- PREPARE stm FROM @UPDATE;
-- EXECUTE stm;
-- DEALLOCATE PREPARE stm;COMMIT;-- 提交END LOOP;CLOSE cur_account;END