mysql --存储过程 退出

mysql 存储过程不支持quit, exit或return的方式退出
编写存储过程时,为了业务规则需要,我们可能需要提前退出存储过程
那么,我们可以利用leave label方式模拟实现quit退出的效果应用示例,存储过程如下:

-- 创建测试存储过程

DELIMITER $$
USE `study`$$
DROP PROCEDURE IF EXISTS `updateGrade`$$
CREATE PROCEDURE `study`.`updateGrade`(IN para_new_grade INT, IN para_old_grade INT)


label:BEGIN
DECLARE var_grade_count INT;

SELECT COUNT(grade) INTO var_grade_count FROM students WHERE grade = para_old_grade;
IF 0 = var_grade_count THEN
SELECT var_grade_count;
LEAVE label; # 退出存储过程
ELSE
UPDATE students SET grade = para_new_grade WHERE grade = para_old_grade;
END IF;

SELECT var_grade_count; # 打印变量值

END$$

DELIMITER ;

总结:

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

posted @ 2019-08-02 17:12  D_戴同学  阅读(1546)  评论(0编辑  收藏  举报