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;

Good Good Study, Day Day Up.

顺序 选择 循环 总结

MySql 存储过程 退出的更多相关文章

  1. MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  2. MySql存储过程

    MySQL 存储过程 ```sql CREATE PROCEDURE myprocedure (IN para01 INTEGER) BEGIN DECLARE var01 CHAR(10); IF ...

  3. mysql存储过程之异常处理篇

    mysql存储过程也提供了对异常处理的功能:通过定义HANDLER来完成异常声明的实现 语法如下: DECLARE handler_type HANDLER FOR condition_value[, ...

  4. MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程

    虽然MySQL的存储过程,一般情况下,是不会使用到的,但是在一些特殊场景中,还是有需求的.最近遇到一个sql server向mysql迁移的项目,有一些sql server的存储过程需要向mysql迁 ...

  5. MySQL存储过程中的3种循环

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  6. MySQL存储过程学习笔记

    MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣.MySQL 5.0终于开始支持存储过程了. MySQL的关键字大小写通用.该学习笔记对关键字使用大写:变量名,表名使用小写. ...

  7. MySQL 存储过程错误处理

    MySQL  存储过程错误处理 如何使用MySQL处理程序来处理在存储过程中遇到的异常或错误. 当存储过程中发生错误时,重要的是适当处理它,例如:继续或退出当前代码块的执行,并发出有意义的错误消息. ...

  8. MySQL 存储过程循环

    MySQL  存储过程循环 MySQL循环语句(包括WHILE,REPEAT和LOOP)来根据条件反复运行代码块. MySQL提供循环语句,允许您根据条件重复执行一个SQL代码块. MySQL中有三个 ...

  9. Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息

    Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息 1.1. 异常的处理模式exit  continue undo模式 1 1.2. 捕获所有异常使用        DECLARE ...

随机推荐

  1. HBuilder 自动整理代码格式快捷键设置

    工具 ->选项

  2. [CC]Mesh文件保存

    CC中有两个地方使用了文件保存,一个是MainWindow,另一个是ccCommandLineParser. MainWindow的保存按钮关联的槽是doActionSaveFile()方法,实现了点 ...

  3. abap事件。

    1:https://www.w3cschool.cn/sap_abap/sap_abap_object_events.html *&------------------------------ ...

  4. MySql语句常用命令整理---单表查询

    初始化t_employee表 创建t_employee表 -- DROP TABLE IF EXISTS test; CREATE TABLE t_employee ( _id INTEGER PRI ...

  5. js 对象的_proto_属性 和函数的prototype属性分析

    bill是 Employee类型的实例,_proto_指向Employee.prototype Employee.prototype有一个constructor属性,指向Employee函数自身 fu ...

  6. fullPage最后一屏自适应

    fullpage最后一屏可以有多少内容展示多少内容 1.需要引用一个滚动条 插件:jquery.slimscroll.js 2.引用一个属性   'scrollOverflow': true, 备注: ...

  7. mac-Navicat Premium 12连接Oracle

    安装及破解: https://pan.baidu.com/s/1ip0oM9p856k34t3cIExa7Q(提取码请留言) Navicat连接了Oracle数据库 测试连接失败,提示:hostnam ...

  8. 命令行方式调用winrar对文件夹进行zip压缩示例代码

    调用winRAR进行压缩 using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...

  9. CentOS6.5下实现R绘图

    1.首先安装R的绘图包Cairo 下载地址:http://www.rforge.net/Cairo/files/ [root@Hadoop-NN-01 mysofts]# R CMD INSTALL ...

  10. Apache和Tomcat的区别?

    主要想了解 web服务器和应用服务器的区别?   严格意义上Web服务器只负责处理HTTP协议,只能发送静态页面的内容. 而JSP,ASP,PHP等动态内容需要通过CGI.FastCGI.ISAPI等 ...