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 輸入輸出參數
調用時指定,並且可被改變和返回
需要數據傳入存儲過程經過調用計算后,再傳出返回值
可當做傳入轉出參數