以前同事告诉我用临时表插入变量数据来查看,但是这种方法过于麻烦,而且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 ) THENselect min(id) into @a FROM t_seq where length = i_length;select number  INTO @b FROM t_seq WHERE id = @a;ELSEselect number  INTO @b FROM t_seq WHERE id = @a+1;        END IF;        SELECT @b INTO o_result;
END

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

2. 窗口点击

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

  • 追踪存储过程执行步骤

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

  1. 用一张临时表,记录调试过程
  2. 直接在存储过程中,增加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 ) THENselect min(id) into @a FROM t_seq where length = i_length;select number  INTO @b FROM t_seq WHERE id = @a;       select @b;ELSEselect number  INTO @b FROM t_seq WHERE id = @a+1;        END IF;        SELECT @b INTO o_result;
END

转载于:https://www.cnblogs.com/kungfupanda/p/5645553.html

Mysql调试存储过程最简单的方法相关推荐

  1. navicat 怎么调试存储过程_Mysql调试存储过程最简单的方法

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

  2. toad for mysql调试存储过程_【oracle】oracle 调试 存储过程

    F 20160106 oracle 几个小点 oracle 调试 存储过程 1.执行: 1)选中 过程名,右击--Test 2)子程序调用 2.重新编译: 选中 过程名,右击--Recompile 3 ...

  3. smarty mysql demo_PHP Smarty模版简单使用方法

    本文实例讲述了PHP Smarty模版简单使用方法.分享给大家供大家参考,具体如下: Index.php: require('../libs/Smarty.class.php'); $smarty = ...

  4. mysql数据库存储过程及调用方法

    mysql数据库存储过程及调用方法 mysql5.0以后就支持存储过程了,目前mysql的6.0Alpha版也已经推出.6.0不仅支持大型数据库如oracle等的绝大部分功 能,如存储过程.视图.触发 ...

  5. navicat 怎么调试存储过程_mysql如何调试存储过程

    mysql调试存储过程的方法:首先用一张临时表,记录调试过程:然后直接在存储过程中,增加[select @xxx],并在控制台查看结果即可. [相关学习推荐:mysql学习] mysql调试存储过程的 ...

  6. 如果不能调试存储过程

    突然想起用"本地系统帐户"登陆,而SQL Server作为服务运行,不能调试存储过程,其解决方法如下: 控制面板->管理工具->服务->MSSQL(默认的ID)- ...

  7. MySQL的存储过程和函数简单写法

    什么是存储过程 简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法: ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功 ...

  8. mySql存储过程,简单实现实例

    原文来自 https://godruoyi.com/artiles/... 这个可以作为mySql的存储过程的入门资料. 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合.可将 ...

  9. mysql mysqld.sock_MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

    首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别. 1.安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示: ERROR ...

  10. 最简版本mysql安装_最简单的配置mysql免安装版本的方法

    为了让用户不需要自己运行mysql安装程序安装mysql数据库,软件发布时需要打包免安装版本的mysql.从mysql官网上直接下载的免安装版本需要各种配置,如果配置不好,很容易产生各种各样的问题.尤 ...

最新文章

  1. linux el5 el6 区别,Oracle ACFS Support on Linux詳解
  2. Python 机动车强制报废公告--参数分析与实现
  3. springboot banner在线生成_SpringBoot系列教程10--小花样之SpringBoot配置自定义Banner
  4. 双绞线直连法如何才能使两台电脑实现共享
  5. 如何从JSF获取JSON响应?
  6. 标题:a 和 a的区别
  7. Vue组件间通信:一个例子学会Vue组件-Vue.js学习总结)(转载)
  8. [Leetcode][第77题][JAVA][组合][回溯]
  9. 申请https协议总结
  10. CentOS 5/6下安装Axel插件加速yum下载
  11. python之调用科大讯飞的在线语音识别
  12. Pix2Pix代码解析
  13. Java使用word模板生成多个word文件,并导出一个zip压缩包
  14. 什么是二进制,为什么要用二进制
  15. win10清理_win10不再需要杀毒软件,同时建议不要安装垃圾清理类软件
  16. Codeforces 1023G:Pisces(最长反链)
  17. 微信摇一摇周边新功能上线
  18. 文件夹快速隐藏,文件夹选项中勾选隐藏目录依旧不能使其显示
  19. 决策树算法的总结归纳
  20. Linux命令之实时监控系统进程状态top

热门文章

  1. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第6节 Lambda表达式_4_Lambda标准格式...
  2. CentOS 7 x64部署tomcat
  3. Python星号表达式
  4. 【转】Python基础-字符串
  5. tp读取配置文件机制
  6. 在idea配置jetty和创建(包、文件)javaWeb以及Servlet简单实现
  7. Jmeter在Windows上分布式压测遇到的坑
  8. Win32 编程
  9. 代码审查(咳咳......又降温了啊....!!!!)
  10. [纯技术讨论]从12306谈海量事务高速处理系统