Braveliu

mysql不支持quit, exit或return的方式退出

编写存储过程时,为了业务规则需要,我们可能需要提前退出存储过程

那么,我们可以利用leave label方式模拟实现quit退出的效果

应用示例,存储过程如下:

 1 DELIMITER $$
 2 USE `study`$$
 3 DROP PROCEDURE IF EXISTS `updateGrade`$$
 4 CREATE PROCEDURE `study`.`updateGrade`(IN para_new_grade INT, IN para_old_grade INT)
 5 
 6 label:BEGIN
 7    DECLARE var_grade_count INT;
 8    
 9    SELECT COUNT(grade) INTO var_grade_count FROM students WHERE grade = para_old_grade;
10    IF 0 = var_grade_count THEN
11         SELECT var_grade_count;
12         LEAVE label; # 退出存储过程
13    ELSE
14         UPDATE students SET grade = para_new_grade WHERE grade = para_old_grade; 
15    END IF;
16    
17    SELECT var_grade_count; # 打印变量值
18    
19 END$$
20 
21 DELIMITER ;

本地调用,亲测效果正常。

总结:

注意书写格式:BEGIN前面加label:,需要退出时直接leave label;

 

Good Good Study, Day Day Up.

顺序 选择 循环 总结

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-01-02
  • 2022-01-02
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-15
  • 2021-11-07
  • 2022-12-23
  • 2021-06-23
相关资源
相似解决方案