MySQL儲存過程的引數

2021-06-01 21:16:04 字數 2910 閱讀 5762

mysql儲存過程的引數用在儲存過程的定義,共有三種引數型別,in,out,inout,形式如:

create procedure([[in |out |inout ] 引數名 資料類形...])

in 輸入引數:表示該引數的值必須在呼叫儲存過程時指定,在儲存過程中修改該引數的值不能被返回,為預設值

out 輸出引數:該值可在儲存過程內部被改變,並可返回

inout 輸入輸出引數:呼叫時指定,並且可被改變和返回

ⅰ. in引數例子

建立:  

1. mysql > delimiter //  

2. mysql > create procedure demo_in_parameter(in p_in int)  

3.      -> begin   

4.      -> select p_in; /*查詢輸入引數*/  

5.      -> set p_in=2; /*修改*/  

6.      -> select p_in; /*檢視修改後的值*/  

7.      -> end;   

8.      -> //  

9. mysql > delimiter ; 

執行結果:

1. mysql > set @p_in=1;  

2. mysql > call demo_in_parameter(@p_in);  

3. +------+  

4. | p_in |  

5. +------+  

6. |   1  |   

7. +------+  

8.  

9. +------+  

10. | p_in |  

11. +------+  

12. |   2  |   

13. +------+  

14.  

15. mysql> select @p_in;  

16. +-------+  

17. | @p_in |  

18. +-------+  

19. |  1    |  

20. +-------+  

以上可以看出,p_in雖然在儲存過程中被修改,但並不影響@p_id的值

ⅱ.out引數例子

建立:1. mysql > delimiter //  

2. mysql > create procedure demo_out_parameter(out p_out int)  

3.      -> begin 

4.      -> select p_out;/*檢視輸出引數*/  

5.      -> set p_out=2;/*修改引數值*/  

6.      -> select p_out;/*看看有否變化*/  

7.      -> end;  

8.      -> //  

9. mysql > delimiter ; 

執行結果:

1. mysql > set @p_out=1;  

2. mysql > call sp_demo_out_parameter(@p_out);  

3. +-------+  

4. | p_out |   

5. +-------+  

6. | null  |   

7. +-------+  

8. /*未被定義,返回null*/  

9. +-------+  

10. | p_out |  

11. +-------+  

12. |   2   |   

13. +-------+  

14.  

15. mysql> select @p_out;  

16. +-------+  

17. | p_out |  

18. +-------+  

19. |   2   |  

20. +-------+  

ⅲ. inout引數例子

建立:1. mysql > delimiter //   

2. mysql > create procedure demo_inout_parameter(inout p_inout int)   

3.      -> begin 

4.      -> select p_inout;  

5.      -> set p_inout=2;  

6.      -> select p_inout;   

7.      -> end;  

8.      -> //   

9. mysql > delimiter ; 

執行結果:

1. mysql > set @p_inout=1;  

2. mysql > call demo_inout_parameter(@p_inout) ;  

3. +---------+  

4. | p_inout |  

5. +---------+  

6. |    1    |  

7. +---------+  

8.  

9. +---------+  

10. | p_inout |   

11. +---------+  

12. |    2    |  

13. +---------+  

14.  

15. mysql > select @p_inout;  

16. +----------+  

17. | @p_inout |   

18. +----------+  

19. |    2     |  

20. +----------+ 

mysql儲存過程引數比較

引數 mysql儲存過程的引數用在儲存過程的定義,共有三種引數型別,in,out,inout in 輸入引數 表示該引數的值必須在呼叫儲存過程時指定,在儲存過程中修改該引數的值不能被返回,為預設值 out 輸出引數 該值可在儲存過程內部被改變,並可返回 inout 輸入輸出引數 呼叫時指定,並且可被...

MYSQL儲存過程引數,in out inout

儲存過程引數,可以定義多個形參 引數前面新增 in 表示輸入引數,預設in 引數前面新增 out 表示輸出引數 引數前面新增 inout 表示輸入輸出引數 mysql中 result 代表全域性變數,符號是對全域性變數的一種申明 delimiter cre atep roce dure proc i...

mysql儲存過程動態引數查詢

1 動態sql,即動態引數 在儲存過程中,想要直接用表名變數做引數,動態執行sql,不能直接寫 12 3456 7createprocedure tablenamechar 20 begin select fromtablename end mysql 不支援表名作為變數,這樣會直接將變數名 tab...