MySQL中的IN OUT INOUT型別

2022-05-27 07:57:08 字數 1774 閱讀 3603

mysql中,儲存過程的引數型別in、out、inout,但是函式的引數只能是in型別的。

1、in型別

使用in型別來傳遞資訊,儲存過程內部可以對引數的值進行修改,但是修改後的值呼叫者不可見。

create

procedure pr_demo_in(in id int

)begin

if (id is

notnull)then

set id = id +1;

endif

;

select id as

output_id;

end/*

* 測試 *

*/set

@id=1;

call pr_demo_in(

@id); /*

* 執行結果output_id = 2 *

*/select

@idas output_id; /*

* 執行結果output_id = 1 *

*/

可以看出雖然設定了變數id的值為1,但是在儲存過程內部修改了id的值為2,id的值並未返回給呼叫者。

2、out型別

使用out型別來傳遞資訊,在儲存過程內部,該值的預設值為null,無論呼叫者是否傳值給儲存過程。

create

procedure pr_demo_out(out id int

)begin

if (id is

notnull)then

set id = id +1;

endif

;

select id as

output_id;

end/*

* 測試 *

*/set

@id=10;

call pr_demo_out(

@id); /*

* 執行結果output_id為null *

*/select

@idas output_id; /*

* 執行結果output_id為null *

*/

可以看出雖然設定了變數id的值為10,但是在儲存過程內部id的值為null,最後id的值在儲存過程內修改後返**用者。

2、inout型別

使用in型別來傳遞資訊,儲存過程內部可以對引數的值進行修改,並將最終值返回給呼叫者。

create

procedure pr_demo_inout(inout id int

)begin

if (id is

notnull)then

set id = id +1;

endif

;

select id as

output_id;

end/*

* 測試 *

*/set

@id=1;

call pr_demo_inout(

@id); /*

* 執行結果output_id = 2 *

*/select

@idas output_id; /*

* 執行結果output_id = 2 *

*/

以看出設定了變數id的值為2,在儲存內部將id的值修改為2,最後id的值返回給呼叫者。

mysql中的編碼 mysql中的編碼

一 mysql中的編碼 mysql show variables like collation mysql show variables like character set 預設是latin1編碼,會導致中文亂碼。修改庫的編碼 mysql alter database db name charac...

mysql中 變數 mysql中的變數

toc 變數 mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中很多的屬性控制都是通過mysql中固有的變數來實現的。系統變數 系統內部定義的變數,系統變數針對所有使用者 mysql客戶端 有效。檢視系統所有變數 show variables like pattern mysql允許...

mysql中的函式名 MySQL中的函式

一 數學函式 數學函式主要用於處理數字,包括整型 浮點數等。abs x 返回x的絕對值 select abs 1 返回1 ceil x ceiling x 返回大於或等於x的最小整數 select ceil 1.5 返回2 floor x 返回小於或等於x的最大整數 select floor 1.5...