在 MySQL 中,INOUT 參數是用于存儲過程和函數的一種參數傳遞方式。它允許你在存儲過程或函數內部修改參數的值,并將這些修改后的值返回給調用者。換句話說,INOUT 參數既可以作為輸入參數,也可以作為輸出參數。
當你在存儲過程或函數中使用 INOUT 參數時,你需要在調用該存儲過程或函數時提供一個變量,該變量將用于存儲輸入值和輸出值。這意味著你可以在存儲過程或函數內部修改這個變量的值,并在存儲過程或函數執行完成后獲取到這個修改后的值。
以下是一個簡單的示例,展示了如何在 MySQL 存儲過程中使用 INOUT 參數:
DELIMITER //
CREATE PROCEDURE AddTen(INOUT inputValue INT)
BEGIN
SET inputValue = inputValue + 10;
END //
DELIMITER ;
在這個示例中,我們創建了一個名為 AddTen
的存儲過程,它接受一個名為 inputValue
的 INOUT 參數。在存儲過程內部,我們將 inputValue
的值加上 10。
現在,我們可以調用這個存儲過程,并傳遞一個變量作為參數:
SET @myVariable = 5;
CALL AddTen(@myVariable);
SELECT @myVariable; -- 結果將是 15
在這個示例中,我們首先設置了一個名為 @myVariable
的變量,并將其值設置為 5。然后,我們調用 AddTen
存儲過程,并將 @myVariable
作為參數傳遞。在存儲過程執行完成后,@myVariable
的值將被修改為 15。最后,我們使用 SELECT
語句查看 @myVariable
的值,結果將是 15。