国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - mysql數據存儲過程參數實例詳解

mysql數據存儲過程參數實例詳解

2020-08-17 17:25nonels Mysql

這篇文章主要介紹了mysql數據存儲過程參數實例詳解,小編覺得挺不錯的,這里分享給大家,供需要的朋友參考。

MySQL 存儲過程參數有三種類型:in、out、inout。它們各有什么作用和特點呢?

一、MySQL 存儲過程參數(in)

MySQL 存儲過程 “in” 參數:跟 C 語言的函數參數的值傳遞類似, MySQL 存儲過程內部可能會修改此參數,但對 in 類型參數的修改,對調用者(caller)來說是不可見的(not visible)。

?
1
2
3
4
5
6
7
8
9
10
11
drop procedure if exists pr_param_in;
create procedure pr_param_in
(
  in id int -- in 類型的 MySQL 存儲過程參數
)
begin
  if (id is not null) then
   set id = id + 1;
  end if;
  select id as id_inner;
end;
?
1
2
3
set @id = 10;
call pr_param_in(@id);
select @id as id_out;
?
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> call pr_param_in(@id);
+----------+
| id_inner |
+----------+
|    11 |
+----------+
 
mysql> select @id as id_out;
+--------+
| id_out |
+--------+
| 10   |
+--------+

可以看到:用戶變量 @id 傳入值為 10,執行存儲過程后,在過程內部值為:11(id_inner),但外部變量值依舊為:10(id_out)。

二、MySQL 存儲過程參數(out)

MySQL 存儲過程 “out” 參數:從存儲過程內部傳值給調用者。在存儲過程內部,該參數初始值為 null,無論調用者是否給存儲過程參數設置值。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
drop procedure if exists pr_param_out;
create procedure pr_param_out
(
  out id int
)
begin
  select id as id_inner_1; -- id 初始值為 null
  if (id is not null) then
   set id = id + 1;
   select id as id_inner_2;
  else
   select 1 into id;
  end if;
  select id as id_inner_3;
end;
?
1
2
3
set @id = 10;
call pr_param_out(@id);
select @id as id_out;
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mysql> set @id = 10;
mysql>
mysql> call pr_param_out(@id);
+------------+
| id_inner_1 |
+------------+
|    NULL |
+------------+
 
+------------+
| id_inner_3 |
+------------+
|     1 |
+------------+
 
mysql> select @id as id_out;
+--------+
| id_out |
+--------+
| 1   |
+--------+

可以看出,雖然我們設置了用戶定義變量 @id 為 10,傳遞 @id 給存儲過程后,在存儲過程內部,id 的初始值總是 null(id_inner_1)。最后 id 值(id_out = 1)傳回給調用者。

三、MySQL 存儲過程參數(inout)

MySQL 存儲過程 inout 參數跟 out 類似,都可以從存儲過程內部傳值給調用者。不同的是:調用者還可以通過 inout 參數傳遞值給存儲過程。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
drop procedure if exists pr_param_inout;
create procedure pr_param_inout
(
  inout id int
)
begin
  select id as id_inner_1; -- id 值為調用者傳進來的值
  if (id is not null) then
   set id = id + 1;
   select id as id_inner_2;
  else
   select 1 into id;
  end if;
  select id as id_inner_3;
end;
?
1
2
3
set @id = 10;
call pr_param_inout(@id);
select @id as id_out;
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
mysql> set @id = 10;
 
mysql>
mysql> call pr_param_inout(@id);
+------------+
| id_inner_1 |
+------------+
|     10 |
+------------+
 
+------------+
| id_inner_2 |
+------------+
|     11 |
+------------+
 
+------------+
| id_inner_3 |
+------------+
|     11 |
+------------+
mysql>
mysql> select @id as id_out;
+--------+
| id_out |
+--------+
| 11   |
+--------+

從結果可以看出:我們把 @id(10),傳給存儲過程后,存儲過程最后又把計算結果值 11(id_inner_3)傳回給調用者。 MySQL 存儲過程 inout 參數的行為跟 C 語言函數中的引用傳值類似。

通過以上例子:如果僅僅想把數據傳給 MySQL 存儲過程,那就使用“in” 類型參數;如果僅僅從 MySQL 存儲過程返回值,那就使用“out” 類型參數;如果需要把數據傳給 MySQL 存儲過程,還要經過一些計算后再傳回給我們,此時,要使用“inout” 類型參數。

總結

以上就是本文關于mysql數據存儲過程參數實例詳解的全部內容,希望對大家了解MySQL有所幫助。有什么問題可以隨時留言,小編會及時回復大家的。感謝朋友們對本站的支持!

原文鏈接:http://www.blogjava.net/nonels/archive/2008/10/09/233324.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲三区在线观看 | 黄色一级毛片免费看 | 亚洲一区二区三区四区的 | 久久国产精品一区二区三区 | 国产日韩欧美在线 | 久草免费福利 | 欧美涩涩网站 | 亚洲bbw| 国产一区 | 久草视频网站 | 色在线视频网站 | 天堂久久精品 | 欧美久久久久 | 国产精品亚洲视频 | 成人精品视频免费在线观看 | 青娱乐国产精品视频 | 久草视频网 | 久久精品中文字幕 | 精品久久99 | 性色视频在线 | 亚洲视频自拍 | 日韩精品一区二区在线观看 | 成人欧美一区二区三区在线观看 | 久久精品中文字幕 | 国产精品视频在线观看 | 成人国产精品免费观看 | 色啪网站 | 99re免费视频精品全部 | 网站av | 日韩欧美中字 | 国产在线在线 | 日本jizz在线观看 | 一区二区三区中文字幕 | 欧美日韩亚洲一区二区三区 | 国产三级一区二区 | 日本三级韩国三级三级a级中文 | 国产美女福利在线 | 日本激情网 | 国产精品一区久久久 | 欧美在线视频网 | 在线久|