MySQL - SHOW PROCEDURE CODE 语句
MySQL SHOW PROCEDURE CODE 语句
存储过程是存储在 SQL 目录中的子例程,是 SQL 语句的片段。所有可以访问关系数据库(Java、Python、PHP 等)的应用程序都可以访问存储过程。
存储过程包含 IN 和 OUT 参数,或两者兼有。如果使用 SELECT 语句,它们可能会返回结果集。存储过程可以返回多个结果集。
SHOW PROCEDURE CODE 语句显示指定名称存储过程的内部代码。要执行此语句,我们需要具有 SHOW ROUTENE 或 SELECT(全局)权限。
此语句以结果集的形式返回代码,其中的每一行代表过程中的一条指令。
此语句仅适用于调试服务器。要执行此操作,请确保您已使用"--with-debug"选项构建 MySQL,否则将生成以下错误 −
ERROR 1289 (HY000): The 'SHOW PROCEDURE|FUNCTION CODE' feature is disabled; you need MySQL built with '--with-debug' to have it working
语法
以下是"SHOW PROCEDURE CODE"语句的语法 -
SHOW PROCEDURE CODE proc_name
其中 proc_name 是您需要代码的过程的名称。
示例
假设我们在数据库中创建了一个名为 Marks 的表,如下所示 -
CREATE TABLE Marks( ID INT, Mathematics INT, Science INT, Languages INT );
让我们创建一个存储过程myProcedure,它接受将记录插入到上面创建的表中。-
DELIMITER //
CREATE PROCEDURE myProcedure()
BEGIN
DECLARE varID INT DEFAULT 1;
DECLARE varMath INT DEFAULT 55;
DECLARE varSci INT DEFAULT 75;
DECLARE varLan INT DEFAULT 80;
INSERT INTO Marks VALUES (varID, varMath, varSci, varLan);
END//
DELIMITER ;
让我们创建一个存储过程myProcedure,它接受将记录插入到上面创建的表中。-
SHOW PROCEDURE CODE myProcedure;
输出
查询执行后,将产生以下输出 -
| Pos | Instruction |
|---|---|
| 0 | set varID@0 1 |
| 1 | set varMath@0 55 |
| 2 | set varSci@0 75 |
| 3 | set varLan@0 80 |
| 4 | stmt 5 "INSERT INTO Marks VALUES(varID, varMath, varSci, varLan);" |

