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);" |