优雅转身

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
CREATE DEFINER=`root`@`localhost` PROCEDURE `NewProc`()
BEGIN
    #Routine body goes here...
        DECLARE  itemId varchar(64);   -- id
        DECLARE  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 THEN
                LEAVE 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

 

posted on 2018-12-21 09:47  优雅转身  阅读(2244)  评论(0编辑  收藏  举报