MySQL儲存過程返回值?
要從儲存過程中返回值,您需要使用使用者定義的特定會話變數。在變數名前新增@符號。
例如,為 valido 變數使用 @ 符號。其語法如下
SELECT @valido;
每當您使用 select 語句時,都需要使用 @anyVariableName。語法如下
SELECT @anyVariableName;
以下是返回值儲存過程的演示。建立儲存過程的查詢如下
mysql> create procedure ReturnValueFrom_StoredProcedure -> ( -> In num1 int, -> In num2 int, -> out valido int -> ) -> Begin -> IF (num1> 4 and num2 > 5) THEN -> SET valido = (num1+num2); -> ELSE -> SET valido = (num1-num2); -> END IF; -> select @valido; -> end // Query OK, 0 rows affected (0.32 sec) mysql> DELIMITER ;
使用 CALL 命令呼叫儲存過程。查詢如下
mysql> call ReturnValueFrom_StoredProcedure(10,6,@TotalSum); +---------+ | @valido | +---------+ | NULL | +---------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
現在透過使用 select 語句檢查儲存過程的結果。查詢如下
mysql> select @TotalSum;
以下是輸出
+-----------+ | @TotalSum | +-----------+ | 16 | +-----------+ 1 row in set (0.00 sec)
現在對兩個值的差進行第二次呼叫。呼叫儲存過程。
mysql> call ReturnValueFrom_StoredProcedure(4,2,@TotalDiff); +---------+ | @valido | +---------+ | NULL | +---------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
使用 select 語句檢查使用者定義特定會話變數的結果。查詢如下
mysql> select @TotalDiff;
以下是輸出
+------------+ | @TotalDiff | +------------+ | 2 | +------------+ 1 row in set (0.00 sec)
廣告