存储过程的例子

举例1:
 

 创建存储过程:
   DELIMITER $$
    CREATE
        PROCEDURE `zyh`.`if_else_`(
           IN num INT(11),
           OUT total VARCHAR(225)   
        )     
        BEGIN
           DECLARE num_ INT;
           SELECT COUNT(*) INTO num_ FROM goods WHERE pre_price > num;
           IF num_ > 1000 THEN 
             SET total = '大于1000条';
           ELSEIF (num_ > 1 AND num_ < 10) THEN 
             SET total = '大于1条 小于 10 条';
           ELSEIF (num_> 10 AND num_ < 1000) THEN 
             SET total ='大于10条小于 1000'; 
           END IF;      
         END$$
    DELIMITER ;
    
    调用存储过程:
       CALL if_else_(10,@total);
        SELECT @total;

 

举例2: 游标在存储过程中的使用:


   创建存储过程:
   

DELIMITER $$
CREATE  PROCEDURE `zyh`.`you_biao`()
    
    BEGIN
    DECLARE str VARCHAR(225) DEFAULT '';
    DECLARE finished INT DEFAULT 0;
    DECLARE v VARCHAR(20);
    DECLARE bonus_value CURSOR  FOR SELECT `value` FROM bonus;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
    OPEN bonus_value;
    get_value : LOOP
       FETCH bonus_value INTO v;
       IF finished = 1 THEN 
          LEAVE get_value;
       END IF;
       IF str != '' THEN   
          SET str= CONCAT(str,';',v);  
       ELSE  
          SET str = v;
       END IF;       
    END LOOP get_value;
    CLOSE  bonus_value;
    SELECT str;     
        
    END$$

DELIMITER ;  

调用存储过程: 
  call you_biao();

举例3:存储过程的时间的比较

DELIMITER $$

CREATE
    
    PROCEDURE `zyh`.`refreshGoods`()
    BEGIN
      DECLARE str VARCHAR(225) DEFAULT '';
      DECLARE finished INT DEFAULT FALSE;
      DECLARE good_id VARCHAR(225) DEFAULT '';
      DECLARE refresh_start_Time VARCHAR(225) DEFAULT '';
      DECLARE refresd_id VARCHAR(225) DEFAULT '';
      DECLARE refresh_end_Time VARCHAR(225) DEFAULT '';
      DECLARE goodsid VARCHAR(225) DEFAULT '';
      DECLARE isnotor INT(10);
      DECLARE nowtime VARCHAR(225) DEFAULT (SELECT  CONCAT(EXTRACT(HOUR FROM NOW()),':',EXTRACT(MINUTE FROM NOW())));
      DECLARE refreshPoint CURSOR  FOR SELECT rp.start_time,rp.refresh_goods_id,rp.end_time FROM refresh_point rp,refresh_goods rg WHERE rg.id = rp.refresh_goods_id AND rg.status=1;
      DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = TRUE;
      OPEN  refreshPoint;
      get_refreshPoint : LOOP
         FETCH refreshPoint INTO refresh_start_Time,refresd_id,refresh_end_Time;
         IF  finished  THEN 
           LEAVE get_refreshPoint;
         END IF;
         IF (refresh_start_Time < nowtime && nowtime < refresh_end_Time)  THEN 
           SELECT rg.goods_id  INTO goodsid  FROM  refresh_goods rg WHERE rg.id = refresd_id;    

    SET good_id = goodsid ; 
    UPDATE goods SET datecreated = NOW() WHERE id=good_id;
    INSERT INTO refresh_history(id,goods_refresh_id,start_time,end_time,datecreated) VALUES(
    ROUND(ROUND(RAND(),5)*10000),refresd_id,refresh_start_Time,refresh_end_Time,NOW());
           
     END IF;
     END LOOP  get_refreshPoint;
     CLOSE refreshPoint;
    END$$

DELIMITER ;

4 存储过程的时间的比较:

DELIMITER $$

CREATE
     PROCEDURE `zyh`.`zhiding_expirydate`()
    BEGIN
    DECLARE str VARCHAR(225) DEFAULT '';
    DECLARE finished INT DEFAULT FALSE;
    DECLARE topgoodsid VARCHAR(50) DEFAULT '';
      DECLARE my_cursor CURSOR FOR(SELECT tg.expiry_date AS expiry_date,tg.id AS id FROM top_goods tg WHERE  tg.status !=2);
      DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = TRUE;
      OPEN my_cursor;
         get_cursor : LOOP 
            FETCH my_cursor INTO  str,topgoodsid;
            IF finished THEN
          LEAVE get_cursor    ;
        END IF;
        IF(NOW() > str) THEN 
          UPDATE top_goods t SET t.status=2 WHERE t.id= topgoodsid;
        END IF ; 
        END LOOP get_cursor;
        CLOSE my_cursor;
                    
    END$$

DELIMITER ;

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值