当前位置: 首页 > news >正文

MYSQL- 查看存储过程调式信息语句(二十七)

13.7.5.27 SHOW PROCEDURE CODE 语句

SHOW PROCEDURE CODE proc_name

此语句是MySQL扩展,仅适用于已构建有调试支持的服务器。它显示了命名存储过程的内部实现的表示。类似的语句SHOW FUNCTION CODE显示有关存储函数的信息(见第13.7.5.19节“SHOW FUNTION CODE语句”)。

要使用任一语句,您必须切换结束符 DEFINER 使用这个进行声明,具有 SHOW_ROUTINE 权限,或具有全局级别的SELECT权限。

如果指定的例程可用,则每条语句都会生成一个结果集。结果集中的每一行对应例程中的一条“指令”。第一列是Pos,它是一个以0开头的序号。第二列是Instruction,它包含一个SQL语句(通常从原始源代码更改),或者一个仅对存储的例程处理程序有意义的指令。

mysql> DELIMITER //
mysql> CREATE PROCEDURE p1 ()BEGINDECLARE fanta INT DEFAULT 55;DROP TABLE t2;LOOPINSERT INTO t3 VALUES (fanta);END LOOP;END//
Query OK, 0 rows affected (0.01 sec)mysql> SHOW PROCEDURE CODE p1//
+-----+----------------------------------------+
| Pos | Instruction                            |
+-----+----------------------------------------+
|   0 | set fanta@0 55                         |
|   1 | stmt 9 "DROP TABLE t2"                 |
|   2 | stmt 5 "INSERT INTO t3 VALUES (fanta)" |
|   3 | jump 2                                 |
+-----+----------------------------------------+
4 rows in set (0.00 sec)mysql> CREATE FUNCTION test.hello (s CHAR(20))RETURNS CHAR(50) DETERMINISTICRETURN CONCAT('Hello, ',s,'!');
Query OK, 0 rows affected (0.00 sec)
--  此模式需要 mysql编译的时候使用 debug模式 不然会报错
-- 1289 - The 'SHOW PROCEDURE|FUNCTION CODE' feature is disabled; you need MySQL built with '--with-debug' to have it working
mysql> SHOW FUNCTION CODE test.hello;
+-----+---------------------------------------+
| Pos | Instruction                           |
+-----+---------------------------------------+
|   0 | freturn 254 concat('Hello, ',s@0,'!') |
+-----+---------------------------------------+
1 row in set (0.00 sec)

在这个例子中,不可执行的BEGIN和END语句已经消失,对于DECLARE variable_name语句,只显示可执行部分(分配默认值的部分)。对于从源代码中获取的每条语句,都有一个码字stmt,后跟一个类型(9表示DROP,5表示INSERT,依此类推)。最后一行包含指令跳转2,即GOTO指令#2。

http://www.lryc.cn/news/491599.html

相关文章:

  • C#基础上机练习题
  • 5.5 W5500 TCP服务端与客户端
  • 一区北方苍鹰算法优化+创新改进Transformer!NGO-Transformer-LSTM多变量回归预测
  • 深入理解 MyBatis 的缓存机制:一级缓存与二级缓存
  • 移远通信推出全新5G RedCap模组RG255AA系列,以更高性价比加速5G轻量化大规模商用
  • 架构-微服务-环境搭建
  • conda下载与pip下载的区别
  • MySQL获取数据库内所有表格数据总数
  • Matlab 深度学习工具箱 案例学习与测试————求二阶微分方程
  • django authentication 登录注册
  • 三种蓝牙架构实现方案
  • ffmpeg 视频滤镜:高斯模糊-gblur
  • 期权懂|在期权市场中,如何用好双买期权?
  • 【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入
  • 《黑神话:悟空》游戏辅助修改器工具下载指南与操作方法详解
  • C语言菜鸟入门·关键字·union的用法
  • ensp静态路由实验
  • 构建 Java Web 应用程序:从 Servlet 到数据库交互(Eclipse使用JDBC连接Mysql数据库)
  • mfc100u.dll是什么?分享几种mfc100u.dll丢失的解决方法
  • Java面试之多线程并发篇
  • 视频推拉流EasyDSS互联网直播点播平台技术特点及应用场景剖析
  • 安全加固方案
  • Linux firewall防火墙规则
  • 速盾:CDN缓存的工作原理是什么?
  • 日常开发记录-正确的prop传参,reduce搭配promise的使用
  • Hyper-V配置-cnblog
  • 运维Tips:Docker或K8s集群拉取Harbor私有容器镜像仓库配置指南
  • openssl颁发包含主题替代名的证书–SAN
  • Stable Diffusion入门教程
  • H.265流媒体播放器EasyPlayer.js无插件H5播放器关于移动端(H5)切换网络的时候,播放器会触发什么事件