MySQL 存储过程参数IN OUT INOUT对比
一、IN
-- 创建测试存储过程 delimiter // create procedure p_in ( IN num int ) begin select num; set num=100; select num; end; // delimiter ; set @num=100; call p_in(@num)
二、OUT
-- 创建测试存储过程 delimiter // create procedure p_out ( OUT num int ) begin select num; set num=100; select num; end; // delimiter ; set @num=100; call p_out(@num)
三、INOUT
-- 创建测试存储过程 delimiter // create procedure p_inout ( INOUT num int ) begin select num; set num=100; select num; end; // delimiter ; set @num=100; call p_inout(@num)
总结:
IN 输入参数
表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
仅需要将数据传入存储过程,并不需要返回计算后的该值。
只能当做传入参数
OUT 输出参数
该值可在存储过程内部被改变,并可返回
不接受外部传入的数据,仅返回计算之后的值。
只能当做转出参数
INOUT 输入输出参数
调用时指定,并且可被改变和返回
需要数据传入存储过程经过调用计算后,再传出返回值
可当做传入转出参数
来源:https://www.cnblogs.com/weibanggang/p/9664709.html