日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 存储过程 select 循环_简简单单储存过程——循环一个select结果集

發(fā)布時(shí)間:2024/10/8 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 存储过程 select 循环_简简单单储存过程——循环一个select结果集 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

摘要:本文主要講解了存儲(chǔ)過程的創(chuàng)建、調(diào)用、以及游標(biāo)的使用?,相信掌握了游標(biāo)????? 會(huì)對(duì)你有不錯(cuò)的幫助,有不足之處還請(qǐng)指教

導(dǎo)航?: 一、存儲(chǔ)過程的創(chuàng)建及調(diào)用

二 、游標(biāo)的使用

三、? 示例

四、補(bǔ)充

說明:

1、用到的兩個(gè)數(shù)據(jù)表:

from_data

to_data

2、示例需求 :?將表from_data 的select結(jié)果集循環(huán)插入到表to_data;

偽代碼:while 循環(huán) select id ,name from_data

insert into to_data(id,name) value(from_data.id,from_data.name)end

3、環(huán)境: mysql

一、存儲(chǔ)過程的創(chuàng)建及調(diào)用

我們創(chuàng)建一個(gè)名叫 add_test的存儲(chǔ)過程

1 、檢查是否有 add_test

Sql代碼??

drop procedure if exists add_test;

2、創(chuàng)建

Sql代碼??

create procedure add_test()

(#[in|out|inout] 參數(shù) datatype

a int;

b int;

)

begin#SQL 語句;

end;

3、調(diào)用

Sql代碼??

call add_test(1,2);

以上就是基本的創(chuàng)建方法,注意已下幾點(diǎn):

1 、在建立和調(diào)用時(shí),add_test后面的“()”是必須的

2、MySQL 存儲(chǔ)過程參數(shù)如果不顯式指定“in”、“out”、“inout”,則默認(rèn)為“in”,并且參數(shù)不能指定默認(rèn)值?。

3、包含多條 SQL 語句時(shí),需要 begin end 關(guān)鍵字,在begin end里面的每條語句的末尾,都要加上分號(hào) “;”

4、在begin end里面聲明變量,使用關(guān)鍵字?DECLARE?,如:

Sql代碼??

begin#聲明一個(gè)name變量,類型是varchar(記得分號(hào))

name varchar(32);end;

二 、游標(biāo)的使用

1、定義游標(biāo)

Sql代碼??

/*定義游標(biāo)的關(guān)鍵字:CURSOR。

定義游標(biāo)cursor_name,

游標(biāo)cursor_name當(dāng)前指針的記錄

是一個(gè)表from_data的多行結(jié)果集*/

DECLARE cursor_name CURSOR FOR select id,name

from from_data;

2、打開游標(biāo)

Sql代碼??

#關(guān)鍵字:OPEN

OPEN cursor_name;

3、 獲取游標(biāo)

Sql代碼??

#聲明兩個(gè)變量

DECLAREa int

;DECLARE b varchar(32)

;/*FETCH 獲取游標(biāo)當(dāng)前指針的記錄,并傳給指定變量 a 、b*/FETCH cursor_name INTO a,b;

注意:(1、此處很重要,我們?cè)诤竺娴难h(huán)例子中會(huì)詳細(xì)講解如何用,

(2、注意變量數(shù)必須與MySQL游標(biāo)返回的字段數(shù)以及類型一致,請(qǐng)看2,3步的標(biāo)紅處,

a的類型對(duì)應(yīng) id,b類型對(duì)應(yīng)name

4、關(guān)閉游標(biāo)

Sql代碼??

CLOSE cursor_name ;

以上就是游標(biāo)的常見使用方法,關(guān)鍵的部分我已在每一步中說明,就不在多說了,現(xiàn)在我們看下例子:

三、示例

Sql代碼??

1 drop procedure ifexists add_test;2 #創(chuàng)建存儲(chǔ)過程 add_test

3

4

5 CREATE PROCEDURE add_test()6

7 BEGIN8 #定義 變量

9

10

11 DECLAREa int;12 DECLARE b VARCHAR(30);13

14 #此變可有可無,為了給個(gè)該存儲(chǔ)函數(shù)執(zhí)行成功后給個(gè)提示,運(yùn)行下便知道

15

16

17 DECLARE str VARCHAR(300);18 DECLAREx int;19

20 #這個(gè)用于處理游標(biāo)到達(dá)最后一行的情況

21

22

23 DECLARE s int default 0;24

25 #聲明游標(biāo)cursor_name(cursor_name是個(gè)多行結(jié)果集)

26

27

28 DECLARE cursor_name CURSOR FOR select id ,name from from_data;29

30 #設(shè)置一個(gè)終止標(biāo)記

31

32

33 DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1;34

35

36 set str = "--";37 #打開游標(biāo)

38

39

40 OPEN cursor_name;41

42 #獲取游標(biāo)當(dāng)前指針的記錄,讀取一行數(shù)據(jù)并傳給變量a,b

43

44

45 fetch cursor_name into a,b;46 #開始循環(huán),判斷是否游標(biāo)已經(jīng)到達(dá)了最后作為循環(huán)條件

47

48

49 while s <> 1 do

50 set str = concat(str,x);51

52 insert into to_data(id,name) values(a,b);53 #讀取下一行的數(shù)據(jù)

54

55

56 fetch cursor_name into a,b;57

58 end while;59

60 #關(guān)閉游標(biāo)

61

62

63 CLOSE cursor_name ;64

65 select str;66

67 #語句執(zhí)行結(jié)束

68

69

70 END;71

72 #調(diào)用存儲(chǔ)函數(shù)add_test

73

74

75 CALL add_test()

四、補(bǔ)充-關(guān)于ssh上運(yùn)行

由于mysql的解釋器默認(rèn)情況下,delimiter是分號(hào);?。在命令行客戶端中,如果有一行命令以分號(hào)結(jié)束,

那么回車后,mysql將會(huì)執(zhí)行該命令?,我們?cè)诖颂幱泻芏喾痔?hào),這樣很是不方便,?這種情況下,我只需

執(zhí)行如下命令:

執(zhí)行delimiter //

即可把分號(hào)結(jié)束換成//結(jié)束,然后在換回

delimiter ;

總結(jié)

以上是生活随笔為你收集整理的mysql 存储过程 select 循环_简简单单储存过程——循环一个select结果集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 西西人体高清44rt·net | 华人在线视频 | 国产青草 | 中国一及毛片 | 中文字幕精品久久久 | 亚洲综合自拍偷拍 | 亚洲性天堂 | 精品一区二区三区免费毛片 | 黄色资源网 | 脱裤吧导航| 波多野吉衣一区二区三区 | 免费av网站在线观看 | 亚洲精品免费在线 | 777av| 免费人妻一区二区三区 | 驯服少爷漫画免费观看下拉式漫画 | 日本亚洲黄色 | 国产精品女同 | 亚洲射吧 | 久久国产精品精品国产色婷婷 | 九色.com | 99欧美精品| 免费福利小视频 | 中文字幕一区二区人妻电影丶 | 激情五月激情综合网 | 农村末发育av片一区二区 | 熟妇人妻一区二区三区四区 | 四虎黄色网 | 特高潮videossexhd | 午夜男人影院 | 三上悠亚在线观看一区二区 | 自拍偷自拍亚洲精品播放 | 国产免费999 | 五月激情开心网 | 免费a网站 | 天天干免费视频 | 亚洲私拍 | 国产原创在线 | 俺也去综合 | 玖草视频在线观看 | 国产日韩免费 | 风韵少妇性饥渴推油按摩视频 | 国产高清99 | 三级黄片毛片 | 欧美精品成人久久 | 波多野结衣在线播放视频 | 三级网站 | 亚洲激情视频在线观看 | 中文字幕亚洲乱码 | 午夜黄色剧场 | 久久人妻少妇嫩草av蜜桃 | 96超碰在线 | 午夜片在线观看 | 中文字幕 日韩有码 | 国产精品伦一区二区三级视频 | 成人亚洲电影 | 国产欧美第一页 | 91免费成人| 色婷婷yy | 天堂中文在线观看 | 日本一区视频在线 | 少妇又色又紧又黄又刺激免费 | 日韩精品麻豆 | 致单身男女免费观看完整版 | 美女扒开尿口让男人桶 | av一级在线观看 | 精品动漫3d一区二区三区免费版 | 在线看国产视频 | 福利视频免费 | 欧美91视频 | av黄色免费观看 | aa视频免费观看 | 欧美性极品少妇xxxx | 污污污www精品国产网站 | 国产9区 | 少妇av导航 | av一区二区不卡 | 成人91看片 | 在线高清免费观看 | 18无码粉嫩小泬无套在线观看 | 午夜成人影片 | 国产日产欧美 | 亚洲爽爽爽 | 午夜性生活片 | 欧美人妻少妇一区二区三区 | 午夜剧场免费在线观看 | 美女一区 | 1级黄色大片 | 91av视频网站 | 久久综合久色欧美综合狠狠 | 欧美野外猛男的大粗鳮 | 午夜网页 | 国产精品999在线观看 | 日韩精品中文字 | 久久成人一区 | 国产成人亚洲精品自产在线 | 中国女人性猛交 | 国产黄a三级三级三级看三级男男 | 大地资源二中文在线影视免费观看 |