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.

顺序 选择 循环 总结

转载于:https://www.cnblogs.com/Braveliu/p/10149070.html

MySql 存储过程 退出相关推荐

  1. mysql 存储过程游标删除_mysql数据库存储过程游标循环,提前退出

    需求:向trade这个数据库中的每一个表增加多个字段 遇到问题:存储过程,游标,循环,动态sql执行 注意: mysql 存储过程在我所使用的5.5版本中不能使用 show 的命令,利用 inform ...

  2. mysql 存储过程 异常 回滚吗_MySQL 5.7 存储过程报错不回滚

    本人在做项目时,遇到了一个异常蛋疼的问题,困扰了很久. 项目原先的数据库选用的是Oracle,后来到新项目中,换成了MySQL,一些主要的业务操作都是由Procedure来实现完成的.之前写过SqlS ...

  3. mysql存储过程into_MySQL存储过程中使用SELECT …INTO语句为变量赋值

    使用SELECT -INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT -INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT -INTO语句 ...

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

    MySQL存储过程中的3种循环 在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易 ...

  5. linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法

    中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题. 1.直接使用insert into语句没问题,能够正常插入汉字. 2.把insert into语句移到Procedu ...

  6. mysql存储过程捕获错误处理_mysql存储过程之异常处理篇

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

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

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

  8. mysql 存储过程 错误码_mysql存储过程中的错误处理_mysql

    mysql存储过程中的异常处理 http://www.cnblogs.com/cookiehu/p/4994278.html 定义异常捕获类型及处理方法: DECLAREhandler_action ...

  9. MySQL 存储过程的写法

    最近因为公司需要做将Oracle 转换为MySQL,其中包含存储过程,所以就对MySQL存储过程的写法做了一些研究. DROP PROCEDURE IF EXISTS ch_passw;   CREA ...

  10. 聊聊MySQL存储过程

    一.存储过程 1.1 什么是存储过程? 存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有 ...

最新文章

  1. labview的用户身份认证系统设计_elasticsearch 集群身份认证与用户鉴权
  2. Learn Python 011: while loop
  3. java 无名类做参数_说说你知道的几种主要的JVM参数
  4. Loj#143-[模板]质数判定【Miller-Rabin】
  5. 李宏毅 课程打包_按功能而不是按层打包课程
  6. 锋利的jQuery--编写jQuery插件(读书笔记五)[完结篇]
  7. ArrayList的四种初始化方法
  8. Beyond Saliency map
  9. Hibernate中的一对一映射
  10. 测试监控系列:使用vb批量统计nmon结果
  11. LibreOffice的使用技巧
  12. zookeeper集群搭建和API使用
  13. python env虚拟环境
  14. unity read files 从ini文件
  15. [娱乐]华为HWT文件手动修改字体名称
  16. 数据挖掘技术的来源 历史 研究内容及常用技术
  17. 大数据服务器环境准备(三台服务)
  18. 使用Bookinfo应用测试Kuma服务网格
  19. 维特比算法(viterbi)原理以及简单实现
  20. docker实战——在测试中使用Docker

热门文章

  1. Solaris10文件布局
  2. 淘宝API代码c#实例(摘)
  3. Maven+SpringMVC+Dubbo 简单的入门demo配置(另一篇)
  4. python 自动赚钱软件排行榜_微任务兼职平台app下载
  5. java socket 组包_关于socket 分包和组包
  6. C++ 变量在内存中的分布
  7. 设计模式---模板模式(C++实现)
  8. 七夕祝福网页制作_啥?七夕过了你还不知道自己为啥单身??
  9. 8.1.2 学习更多关于ConcurrentHashMap
  10. 数据库与表的操作之创建、修改和删除数据