在MySQL中,INOUT
參數用于在存儲過程和函數中傳遞值
以下是一個簡單的示例,演示了如何在MySQL存儲過程中使用INOUT
參數:
DELIMITER //
CREATE PROCEDURE AddNumbers(IN num1 INT, IN num2 INT, INOUT sum INT)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT 'An error occurred while adding numbers.';
END;
START TRANSACTION;
SET sum = num1 + num2;
COMMIT;
END //
DELIMITER ;
在這個示例中,我們創建了一個名為AddNumbers
的存儲過程,它接受兩個輸入參數(num1
和num2
)和一個輸入/輸出參數(sum
)。我們使用DECLARE EXIT HANDLER
語句定義了一個錯誤處理程序,當發生SQLEXCEPTION
時,它將回滾事務并返回一條錯誤消息。在正常情況下,我們將num1
和num2
相加,并將結果存儲在sum
變量中。
要調用此存儲過程,可以使用以下命令:
SET @num1 = 5;
SET @num2 = 3;
SET @sum = 0;
CALL AddNumbers(@num1, @num2, @sum);
SELECT @sum;
這將返回8
作為sum
的值。如果在執行過程中發生錯誤,將觸發錯誤處理程序并返回相應的錯誤消息。