• 怎样合并分支条件,减少代码行数?


    w怎样合并分支条件,减少代码行数?

     1 DROP PROCEDURE IF EXISTS w_self_update_amzasin;
     2 DELIMITER /w/
     3 CREATE PROCEDURE w_self_update_amzasin()
     4 BEGIN
     5   DECLARE done INT DEFAULT FALSE;
     6   DECLARE w_pkid INT;
     7   DECLARE w_asin VARCHAR(16);
     8   DECLARE w_country VARCHAR(6); 
     9   DECLARE wcur CURSOR FOR SELECT pkid,asin,country FROM amzasin;
    10   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    11 
    12   OPEN wcur;
    13   read_loop: LOOP
    14     FETCH wcur INTO w_pkid,w_asin,w_country;
    15     IF done THEN LEAVE read_loop;
    16     END IF;
    17         SET @w_nothhtps='www.amazon.';  
    18         SET @w_most=CONCAT(LOWER(w_country),'/product/dp/',w_asin);
    19         CASE  LOWER(w_country)
    20             WHEN 'ca' THEN SELECT 'w'; 
    21             WHEN 'in' THEN SELECT 'w'; 
    22             WHEN 'es' THEN SELECT 'w'; 
    23             WHEN 'it' THEN SELECT 'w'; 
    24             WHEN 'fr' THEN SELECT 'w'; 
    25 
    26             WHEN 'jp' THEN SET @w_most=CONCAT('co.',@w_most); 
    27             WHEN 'uk' THEN SET @w_most=CONCAT('co.',@w_most); 
    28 
    29             WHEN 'mx' THEN SET @w_most=CONCAT('com.',@w_most); 
    30 
    31             WHEN 'us' THEN SET @w_most=CONCAT('com/gp/product/',w_asin); 
    32       ELSE
    33         BEGIN
    34         END;
    35     END CASE;
    36 
    37         SET @w_nothhtps=CONCAT(@w_nothhtps,@w_most);
    38         SET @wtmp=CONCAT('UPDATE amzasin ',' SET url="',@w_nothhtps,'" WHERE pkid=',w_pkid);
    39         PREPARE  stmt FROM @wtmp ;
    40         EXECUTE  stmt ;
    41         DROP PREPARE stmt;
    42   END LOOP;
    43   CLOSE wcur;
    44 END/w/
    45 DELIMITER;
    46 CALL w_self_update_amzasin(); 

    ERROR

     1 DROP PROCEDURE IF EXISTS w_self_update_minerasinlist_minerasinlist;
     2 DELIMITER /w/
     3 CREATE PROCEDURE w_self_update_minerasinlist()
     4 BEGIN
     5   DECLARE done INT DEFAULT FALSE;
     6   DECLARE w_autoid INT;
     7   DECLARE w_asin VARCHAR(16);
     8   DECLARE w_countrycode VARCHAR(6); 
     9   DECLARE wcur CURSOR FOR SELECT autoid,asin,countrycode FROM minerasinlist;
    10   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    11 
    12   OPEN wcur;
    13   read_loop: LOOP
    14     FETCH wcur INTO w_autoid,w_asin,w_countrycode;
    15     IF done THEN LEAVE read_loop;
    16     END IF;
    17         SET @w_nothhtps='www.amazon.';  
    18         SET @w_most=CONCAT(LOWER(w_countrycode),'/product/dp/',w_asin);
    19         CASE  LOWER(w_countrycode)
    20                 WHEN 'ca' 
    21                 WHEN 'in' 
    22                 WHEN 'es' 
    23                 WHEN 'it' 
    24                 WHEN 'fr' THEN SELECT 'w'; 
    25 
    26                 WHEN 'jp' 
    27                 WHEN 'uk' THEN SET @w_most=CONCAT('co.',@w_most); 
    28 
    29                 WHEN 'mx' THEN SET @w_most=CONCAT('com.',@w_most); 
    30 
    31                 WHEN 'us' THEN SET @w_most=CONCAT('com/gp/product/',w_asin); 
    32       ELSE
    33         BEGIN
    34         END;
    35     END CASE;
    36 
    37         SET @w_nothhtps=CONCAT(@w_nothhtps,@w_most);
    38         SET @wtmp = CONCAT('UPDATE minerasinlist ',' SET url="',@w_nothhtps,'" WHERE autoid=',w_autoid);
    39         PREPARE  stmt FROM @wtmp ;
    40         EXECUTE  stmt ;
    41         DROP PREPARE stmt;
    42   END LOOP;
    43   CLOSE wcur;
    44 END/w/
    45 DELIMITER;
    46 CALL w_self_update_minerasinlist( ); 
  • 相关阅读:
    契约测试SpringCloud Contract入门
    CircuitBreaker 组件 resilience4j
    阿里开源的15个顶级Java项目
    将军令:数据安全平台建设实践
    ResNet
    设计模式
    muduo评测摘要
    muduo 学习
    RAII
    大数据框架
  • 原文地址:https://www.cnblogs.com/rsapaper/p/6323122.html
Copyright © 2020-2023  润新知