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

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 ()
       BEGIN
         DECLARE fanta INT DEFAULT 55;
         DROP TABLE t2;
         LOOP
           INSERT 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) DETERMINISTIC
       RETURN 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.kler.cn/a/407532.html

相关文章:

  • 洛谷 P1722 矩阵 II C语言 记忆化搜索
  • 后端开发详细学习框架与路线
  • 遗传算法(Genetic Algorithm, GA)
  • 进程控制(详解)
  • 向量数据库FAISS之一:官方简单教程
  • 小红书运营教程10(小红书笔记制作01)
  • 【AI系统】核心计算之矩阵乘
  • 安装支持ssl的harbor 2.1.4 docker 19.03.8 docker-compose 1.24.0
  • 百度主动推送可以提升抓取,它能提升索引量吗?
  • Python入门(14)--数据分析基础
  • 删除链表中倒数第N和节点
  • 【LLM】一文学会SPPO
  • 数字孪生赋能智慧校园:构建全方位校园安全保障新体系
  • 漫步北京小程序+气象景观数字化服务平台,让气象景观触手可及
  • 自制游戏:监狱逃亡
  • 【Linux】僵尸进程、进程状态简介
  • 升级鸿蒙NEXT后,你的手机相机发生了这些变化……
  • RNN模型文本预处理--基本处理方法
  • 魔改 Typora 主题,造就 CodeVeil!
  • 七天掌握SQL--->第二天:SQL高级查询与数据库设计
  • GoF设计模式——结构型设计模式分析与应用
  • C#对INI配置文件进行读写操作方法
  • C++结构型设计模式的作用和特征
  • Linux系统性能优化技巧
  • 面试题---深入源码理解MQ长轮询优化机制
  • window11编译pycdc.exe