同事告诉我用临时表插入变量数据来查看,但是这种方法太繁琐,Mysql也没有很好的调试存储过程的工具。今天google发现可以通过选择变量名来调试。
同事告诉我用临时表插入变量数据来查看,但是这种方法太繁琐,Mysql也没有很好的调试存储过程的工具。今天google发现可以通过选择变量名来调试。
具体方法:
将以下语句添加到存储过程中:
选择变量1,变量2;
然后使用mysql自带的cmd程序进入mysql。
调用你的存储过程名(输入参数1,@输出参数);(注意:这里是为了帮助新同学,如果你的存储过程有输出变量,那么只要在这里加上@然后跟在任何变量名后面就可以了);
你可以发现你的变量值打印在cmd下。简单吗?呵呵,希望能帮到你。
有如下一个存储过程
CREATE PROCEDURE ` p _ next _ id `( kind _ name VARCHAR(30),i_length int,currentSeqNo VARCHAR(3),OUT o_result INT)
开始
SET @ a=NULL
SET @ b=NULL
SELECT id INTO @a FROM t_seq其中number=currentSeqNo,length=i _ length如果(@a为空)则
select min(id) into @a FROM t_seq其中length=i _ length
select number INTO @b FROM t_seq其中id=@ a;其他
select number INTO @b FROM t_seq其中id=@ a 1;
结束IF;
SELECT @ b INTO o _ result
结束
在navicat中调用存储过程写语句调用
调用p_next_id(t_factory ,2, 0 ,@ result);-上面的存储过程包含四个参数,所以在这里调用时,也需要传递四个参数:输入参数填写值,输出参数用变量表示@result。
选择@ result-这句话是在控制台上显示变量值。
2.点击窗口
直接点击运行,在弹出的输入框中输入: t_factory ,2, 0 ,@result。
跟踪存储过程执行步骤
与oracle不同,mysql有plsqldevelper工具来调试存储过程,因此有两种简单的方法来跟踪执行过程:
使用临时表格记录调试过程。
直接在存储过程中,添加select @xxx,并在控制台中检查结果:
例如,我在上面的存储过程中添加了一些查询语句(注意下面红色的语句)。
CREATE PROCEDURE ` p _ next _ id `( kind _ name VARCHAR(30),i_length int,currentSeqNo VARCHAR(3),OUT o_result INT)
开始
SET @ a=NULL
SET @ b=NULL
SELECT id INTO @a FROM t_seq其中number=currentSeqNo,length=i _ length选择@ a;
如果(@a为空)则
select min(id) into @a FROM t_seq其中length=i _ length
select number INTO @b FROM t_seq其中id=@ a;选择@ b;
其他
select number INTO @b FROM t_seq其中id=@ a 1;
结束IF;
SELECT @ b INTO o _ result
结束
关于在Mysql中调试存储过程的最简单方法的文章到此结束。有关Mysql调试存储过程的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!