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