MySQL - SHOW PROCEDURE CODE 语句



MySQL SHOW PROCEDURE CODE 语句

存储过程是子程序,它是存储在 SQL 目录中的 SQL 语句段。所有能够访问关系数据库的应用程序(Java、Python、PHP 等)都可以访问存储过程。

存储过程包含输入 (IN) 和输出 (OUT) 参数,或者两者兼有。如果使用 SELECT 语句,它们可能会返回结果集。存储过程可以返回多个结果集。

SHOW PROCEDURE CODE 语句显示指定命名存储过程的内部代码。要执行此语句,我们需要拥有 SHOW ROUTINE 或 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);"
广告
© . All rights reserved.