MySQL存儲過程是一些預定義的SQL語句集,它們在數據庫中存儲并可以多次重復使用。在編寫存儲過程時,可以通過參數來傳遞數據值。
存儲過程參數可以分為輸入參數、輸出參數和輸入輸出參數三種類型,具體定義方法如下:
-- 定義輸入參數 IN parameter_name data_type -- 定義輸出參數 OUT parameter_name data_type -- 定義輸入輸出參數 INOUT parameter_name data_type
其中,parameter_name為參數名,data_type為參數類型。在定義存儲過程時,可以定義多個參數,各參數之間用逗號隔開。例如:
-- 定義具有兩個輸入參數和一個輸出參數的存儲過程 CREATE PROCEDURE sample_proc (IN param1 INT, IN param2 VARCHAR(20), OUT result VARCHAR(50)) BEGIN -- 存儲過程語句 END;
在存儲過程體內,可以使用參數名來訪問參數值。例如:
-- 修改輸出參數的值 SET result = CONCAT('Hello, ', param2, '!', ' The value of param1 is ', param1);
在調用存儲過程時,需要傳遞相應參數。例如:
-- 調用存儲過程時傳遞參數 CALL sample_proc(123, 'world', @res); -- 獲取存儲過程的輸出參數 SELECT @res;
輸入參數使用IN關鍵字定義,表示存儲過程僅使用它們的值。輸出參數使用OUT關鍵字定義,表示存儲過程僅將值返回給調用方。輸入輸出參數使用INOUT關鍵字定義,表示存儲過程既可以使用它們的值,也可以將值返回給調用方。