输出参数(OUT参数)用于从存储过程返回结果值,通过OUT或INOUT定义,调用时传入变量,执行中赋值,结束后获取结果,支持多值返回。

在 mysql 存储过程中,输出参数是指由存储过程执行后返回给调用者的数据值。这类参数使用 OUT 或 INOUT 关键字定义。
什么是输出参数(OUT 参数)?
OUT 参数用于从存储过程中“传出”结果值。调用者传入一个变量名,存储过程内部对该变量赋值,调用结束后,这个变量就携带了返回的结果。
与 IN 参数(只用于输入)不同,OUT 参数不接收初始值,而是用来保存输出结果。
示例:
创建一个简单的存储过程,计算两个数的和并通过 OUT 参数返回:
DELIMITER // CREATE PROCEDURE ComputeSum( IN a INT, IN b INT, OUT result INT ) BEGIN SET result = a + b; END // DELIMITER ;
调用该存储过程并获取输出值:
INOUT 参数的作用
INOUT 参数兼具输入和输出功能。调用时需传入变量,存储过程中可读取其原始值,也可修改它,修改后的值会返回给调用者。
示例:
DELIMITER // CREATE PROCEDURE DoubleValue(INOUT x INT) BEGIN SET x = x * 2; END // DELIMITER ;
使用方式:
SET @num = 4; CALL DoubleValue(@num); SELECT @num; -- 输出:8
如何正确使用输出参数?
- 定义参数时明确使用 OUT 或 INOUT 关键字
- 调用时必须传入用户变量(如 @var),不能传常量或表达式
- 在 CALL 语句之后,通过 SELECT 查看输出变量的值
- 注意变量命名避免冲突,建议使用有意义的名称
基本上就这些。MySQL 的输出参数机制虽然不如函数 return 那样直观,但在需要返回多个值时非常实用。关键是要理解变量的传递方式和生命周期。不复杂但容易忽略细节。


