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.
順序 選擇 循環 總結