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 全文索引使用指南
May 25 MySQL
mysql外连接与内连接查询的不同之处
Jun 03 MySQL
浅谈mysql返回Boolean类型的几种情况
Jun 04 MySQL
浅谈MySQL user权限表
Jun 18 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
SQL实现LeetCode(176.第二高薪水)
Aug 04 MySQL
MySQL的存储函数与存储过程的区别解析
Apr 08 MySQL
SQL语句多表联合查询的方法示例
Apr 18 MySQL
优化Mysql查询的示例
Apr 26 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 MySQL
sql注入报错之注入原理实例解析
Jun 10 MySQL
mysql函数之截取字符串的实现
Aug 14 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 smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
2021/02/08 Javascript
Python 元类使用说明
2009/12/18 Python
让python json encode datetime类型
2010/12/28 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
佳能德国网上商店:Canon德国
2017/03/18 全球购物
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
建筑学推荐信
2013/11/03 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
python代码实现备忘录案例讲解
2021/07/26 Python