【MySQL-18】存储过程各种需求实现合集-[进阶语法]-<if,参数(IN,OUT,INOUT),case,while,repeat,loop,游标cursor,条件处理程序handler>
DELIMITER //
CREATE PROCEDURE `sp_test_adv`(
IN p_in INT,
OUT p_out INT,
INOUT p_inout INT
)
BEGIN
DECLARE v_var INT DEFAULT 0;
IF p_in IS NOT NULL THEN
SET v_var = p_in;
ELSE
SET v_var = -1;
END IF;
SET p_out = v_var * 2;
SET p_inout = p_inout * 3;
CASE p_in
WHEN 0 THEN
SET v_var = 0;
WHEN 1 THEN
SET v_var = 10;
ELSE
SET v_var = 100;
END CASE;
SELECT v_var;
END //
DELIMITER ;
这段代码创建了一个名为sp_test_adv
的MySQL存储过程,它接受三个参数:一个输入参数p_in
,一个输出参数p_out
,以及一个带入-带出参数p_inout
。它使用了IF
语句来检查输入参数是否为空,并根据结果设置局部变量v_var
的值。接着,它使用CASE
语句来根据输入参数的值设置v_var
的不同值。最后,它通过SELECT
语句返回v_var
的值,并分别为输出参数p_out
和带入-带出参数p_inout
设置了新的值。
评论已关闭