Mysql中调试存储过程最简单的方法


Posted in MySQL onJune 30, 2021

以前同事告诉我用临时表插入变量数据来查看,但是这种方法过于麻烦,而且Mysql没有比较好的调试存储过程的工具。今天google了下发现可以用select + 变量名的方法来调试

具体方法:

在你的存储过程中加入如下语句:
SELECT 变量1,变量2;

然后用mysql自带的cmd程序进入mysql> 下。
call 你的存储过程名(输入参数1,@输出参数);(注:这里帮助下新同学,如果你的存储过程有输出变量,那么在这里只需要加 @ 然后跟任意变量名即可);
即可发现你的变量值被打印到了cmd下,简单吧?呵呵 希望能帮到诸位。

有如下一个存储过程

CREATE PROCEDURE `p_next_id`(kind_name VARCHAR(30), i_length int,currentSeqNo VARCHAR(3),OUT o_result INT)
BEGIN 
     SET @a= NULL;
     SET @b= NULL;
     SELECT id INTO @a FROM t_seq WHERE number= currentSeqNo and length= i_length ;          IF (@a is null ) THEN
            select min(id) into @a FROM t_seq where length = i_length;
            select number  INTO @b FROM t_seq WHERE id = @a;ELSE
        select number  INTO @b FROM t_seq WHERE id = @a+1;        
     END IF;        
     SELECT @b INTO o_result;     
END

在navicat中调用存储过程 


写语句调用
call p_next_id('t_factory',2,'0',@result); -- 上面的存储过程含有四个参数,所以这里调用的时候,也需要传递4个参数:输入参数填写值,输出参数用变量表示@result
select @result; -- 这句话是在控制台显示变量值
2. 窗口点击

直接点击运行时,在弹出输入框输入:'t_factory',2,'0',@result

追踪存储过程执行步骤

mysql不像oracle有plsqldevelper工具用来调试存储过程,所以有两简单的方式追踪执行过程:

用一张临时表,记录调试过程
直接在存储过程中,增加select @xxx,在控制台查看结果:
例如我把上面的存储过程中加一些查询语句(注意下面的红色语句)

CREATE PROCEDURE `p_next_id`(kind_name VARCHAR(30), i_length int,currentSeqNo VARCHAR(3),OUT o_result INT)
BEGIN 
     SET @a= NULL;
     SET @b= NULL;
     SELECT id INTO @a FROM t_seq WHERE number= currentSeqNo and length= i_length ;   SELECT @a;     
     IF (@a is null ) THEN
            select min(id) into @a FROM t_seq where length = i_length;
            select number  INTO @b FROM t_seq WHERE id = @a;       select @b;
     ELSE
        select number  INTO @b FROM t_seq WHERE id = @a+1;        
     END IF;        
     SELECT @b INTO o_result;     
END

到此这篇关于Mysql中调试存储过程最简单的方法的文章就介绍到这了,更多相关Mysql调试存储过程内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
详解MySQL的半同步
Apr 22 MySQL
linux下导入、导出mysql数据库命令的实现方法
May 26 MySQL
mysql5.7使用binlog 恢复数据的方法
Jun 03 MySQL
浅谈MySQL之select优化方案
Aug 07 MySQL
MySQL中datetime时间字段的四舍五入操作
Oct 05 MySQL
SQL 聚合、分组和排序
Nov 11 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 MySQL
MySQL分区表管理命令汇总
Mar 21 MySQL
优化Mysql查询的示例
Apr 26 MySQL
MySql数据库 查询时间序列间隔
May 11 MySQL
Mysql中mvcc各场景理解应用
Aug 05 MySQL
mysql数据库如何转移到oracle
Dec 24 MySQL
mysql如何配置白名单访问
Jun 30 #MySQL
Mysql数据库按时间点恢复实战记录
浅析MySQL如何实现事务隔离
MySQL开启事务的方式
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
Jun 26 #MySQL
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
Jun 26 #MySQL
You might like
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
php学习之 循环结构实现代码
2011/06/09 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
Jquery中给animation加更多的运作效果实例
2013/09/05 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python判断操作系统类型代码分享
2014/11/22 Python
python基础教程项目二之画幅好画
2018/04/02 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
信息管理专业推荐信
2013/10/29 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
考研经验交流会策划书
2015/11/02 职场文书