I would like to use goto in MySQL stored function.

How can I use?

Sample code is:

if (action = 'D') then

if (rowcount > 0) then

DELETE FROM datatable WHERE id = 2;

else

SET p=CONCAT('Can not delete',@b);

goto ret_label;

end if;

end if;

Label: ret_label;

return 0;

解决方案

There are GOTO cases which can't be implemented in MySQL, like jumping backwards in code (and a good thing, too).

But for something like your example where you want to jump out of everything to a final series of statements, you can create a BEGIN / END block surrounding the code to jump out of:

aBlock:BEGIN

if (action = 'D') then

if (rowcount > 0) then

DELETE FROM datatable WHERE id = 2;

else

SET p=CONCAT('Can not delete',@b);

LEAVE aBlock;

end if;

end if;

END aBlock;

return 0;

Since your code is just some nested IFs, the construct is unnecessary in the given code. But it makes more sense for LOOP/WHILE/REPEAT to avoid multiple RETURN statements from inside a loop and to consolidate final processing (a little like TRY / FINALLY).

mysql goto,如何在MySQL存储函数中使用goto标签相关推荐

  1. 阿里云 mysql emoji_如何在 MySQL 中存储 emoji ?

    问题还原 使用 erlang 存储一些特殊字符串到 MySQL 的时候,却没法读出来.经检查,这些字符串的二进制格式如下: <<240,159,152,134,240,159,152,14 ...

  2. MySQL入门之存储过程与存储函数

    ---------------------------------------------------------------------------------------------------- ...

  3. MySQL初级篇——存储过程、存储函数的相关概念及应用举例

    文章目录: 1.什么是存储过程? 2.存储过程操作相关SQL 3.存储过程实操SQL 4.存储函数操作相关SQL 5.存储函数实操SQL 6.存储过程.存储函数的优缺点 1.什么是存储过程? 含义:存 ...

  4. 【MySQL进阶】存储过程及存储函数

    5.存储过程 5.1.介绍 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率 ...

  5. mysql create definer_mysql stored routine (存储例程) 中 definer 的作用 和实例

    创建 例程语法参见https://dev.mysql.com/doc/refman/5.7/en/create-procedure.html 创建procedure 的语法如下 CREATE [DEF ...

  6. 如何在JQuery $ .each函数中编辑全局变量?

    好的,这样的标题可能无法很好地解释我的问题. 希望这是有道理的. 这也是我第一个使用jQuery的应用程序,因此,如果我做一些愚蠢的事情,请原谅我. 我有以下功能: function getRando ...

  7. 如何在matlab sfunction 函数中调用自己写的函数?

    自己编写了一个s函数,有几个参数引用了自己写的几个函数,在脚本中可以正确运行,但在写成s函数,进行 simulink 仿真的时候,已知提示"too many input auguments& ...

  8. mysql存储函数中游标报错 No data - zero rows fetched, selected

    通常,当您超出游标范围时会发生这种情况,因此请检查FETCH语句所在部分的循环条件

  9. mysql stragg_如何在MySQL中將子查詢行的結果顯示為一列?

    I have three tables Category, Movies and RelCatMov 我有三個表分類,電影和RelCatMov Category-table categoryid, c ...

最新文章

  1. 机器学习算法基础知识
  2. 关于jsp页面传值乱码问题
  3. 试题 历届试题 翻硬币(贪心)
  4. Shell编程—【05】Linux的find命令详解
  5. Android之实现点击布局缩小然后再放大动画
  6. 关于字符串和字节编码的问题(转)
  7. 40 张图揭秘「键入网址发生了什么」
  8. 第一周 7.10-7.16
  9. 插入附件 文件名显示不全_批量插入、提取图片,这几招要会掌握
  10. 怎么直接播放或编辑WEBM格式的视频
  11. 六自由度机械臂运动学分析及其轨迹规划
  12. ros自带到期通知_iPhone自带的8个App,没想到这么好用!
  13. 社招/实习/春招 | 字节跳动 | 抖音-隐私合规团队 | 北京/杭州 【岗位急招,部门直推,hc多多,欢迎投递~~~】
  14. Unity太空大战游戏-Socket网络通信教学示例
  15. 可控制导航下拉方向的jQuery下拉菜单代码
  16. C# 国际化问题之CultureInfo(小数点的不同一些欧洲国家习惯使用,而非.)
  17. XGBoost python调参示例
  18. [scRNA-seq]单细胞转录因子分析——SCENIC算法简析
  19. 单细胞论文记录(part22)--Giotto: a toolbox for integrative analysis and visualization of spatial expression
  20. 机器学习日记Day4

热门文章

  1. redis有值查询返回null_Redis缓存穿透、缓存并发、热点缓存之最佳招式
  2. 内核参数 linux dd,内核模块指定参数方式
  3. 经常误提交.DS_Store文件怎么办?Git全局排除配置了解一下!
  4. 皮一皮:论脑回路的新奇指数...
  5. Spring Boot 2.5.5发布:开始支持Java 17了!
  6. 使用Elastic Job的namespace配置,防止任务名称的冲突
  7. 啥是指标陷阱?很多就出现在你的身边!
  8. 没了解过条件注解@ConditionalOn..?Spring Boot白学了!
  9. linux系统无线驱动在哪下载,在linux上怎么安装无线网卡驱动?
  10. 开源论文推荐:含人脸识别、实例分割、跟踪、SR等