最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

Mysql創(chuàng)建存儲過程,使用游標(biāo)Cursor循環(huán)更新_MySQL

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 20:11:57
文檔

Mysql創(chuàng)建存儲過程,使用游標(biāo)Cursor循環(huán)更新_MySQL

Mysql創(chuàng)建存儲過程,使用游標(biāo)Cursor循環(huán)更新_MySQL:bitsCN.com 使用游標(biāo)(cursor)1.聲明游標(biāo)DECLARE cursor_name CURSOR FOR select_statement這個(gè)語句聲明一個(gè)游標(biāo)。也可以在子程序中定義多個(gè)游標(biāo),但是一個(gè)塊中的每一個(gè)游標(biāo)必須有唯一的名字。聲明游標(biāo)后也是單條操作的,但是不能用SELECT語句不能有IN
推薦度:
導(dǎo)讀Mysql創(chuàng)建存儲過程,使用游標(biāo)Cursor循環(huán)更新_MySQL:bitsCN.com 使用游標(biāo)(cursor)1.聲明游標(biāo)DECLARE cursor_name CURSOR FOR select_statement這個(gè)語句聲明一個(gè)游標(biāo)。也可以在子程序中定義多個(gè)游標(biāo),但是一個(gè)塊中的每一個(gè)游標(biāo)必須有唯一的名字。聲明游標(biāo)后也是單條操作的,但是不能用SELECT語句不能有IN

bitsCN.com

使用游標(biāo)(cursor)

1.聲明游標(biāo)

DECLARE cursor_name CURSOR FOR select_statement
這個(gè)語句聲明一個(gè)游標(biāo)。也可以在子程序中定義多個(gè)游標(biāo),但是一個(gè)塊中的每一個(gè)游標(biāo)必須有唯一的名字。聲明游標(biāo)后也是單條操作的,但是不能用SELECT語句不能有INTO子句。

2. 游標(biāo)OPEN語句

OPEN cursor_name
這個(gè)語句打開先前聲明的游標(biāo)。

3. 游標(biāo)FETCH語句

FETCH cursor_name INTO var_name [, var_name] ...
這個(gè)語句用指定的打開游標(biāo)讀取下一行(如果有下一行的話),并且前進(jìn)游標(biāo)指針。

4. 游標(biāo)CLOSE語句

CLOSE cursor_name
這個(gè)語句關(guān)閉先前打開的游標(biāo)。

寫之前查了好多資料但是總是執(zhí)行不了,后來自琢磨了一下,寫了個(gè)例子,經(jīng)過測試完全正確。

下面是創(chuàng)建存儲過程,使用游標(biāo)循環(huán)更新操作的例子:

-- Procedure "useCursor" DDLCREATE PROCEDURE `useCursor`()BEGIN /*局部變量的定義 declare*/ declare aid bigint default 0 ; declare mdsl bigint default 0; declare stop int default 0; declare cur CURSOR FOR (select count(area_info.id) as mdsl, area_info.id as aid from area_info right join subbranch_info on subbranch_info.i_subbran_area=area_info.id	where area_info.i_record_status=0 and subbranch_info.i_record_status=0 group by area_info.id); /* mysql 不知道為什么用異常加入判斷 ? * 這把 游標(biāo) 異常后 捕捉 * 并設(shè)置 循環(huán)使用 變量 stop 為 null 跳出循環(huán)。 */ declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop = null; /*開游標(biāo)*/	OPEN cur;	/*游標(biāo)向下走一步,將查詢出來的兩個(gè)值付給定義的兩個(gè)變量*/	FETCH cur INTO mdsl,aid;	/* 循環(huán)體 這很明顯 把游標(biāo)查詢出的 name 都加起并用 ; 號隔開 */	WHILE ( stop is not null) DO	update zlgsydrsp.area_info set i_subbran_count=mdsl where id = aid ;	/*游標(biāo)向下走一步*/	FETCH cur INTO mdsl,aid;	END WHILE;	CLOSE cur;END;
bitsCN.com

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Mysql創(chuàng)建存儲過程,使用游標(biāo)Cursor循環(huán)更新_MySQL

Mysql創(chuàng)建存儲過程,使用游標(biāo)Cursor循環(huán)更新_MySQL:bitsCN.com 使用游標(biāo)(cursor)1.聲明游標(biāo)DECLARE cursor_name CURSOR FOR select_statement這個(gè)語句聲明一個(gè)游標(biāo)。也可以在子程序中定義多個(gè)游標(biāo),但是一個(gè)塊中的每一個(gè)游標(biāo)必須有唯一的名字。聲明游標(biāo)后也是單條操作的,但是不能用SELECT語句不能有IN
推薦度:
標(biāo)簽: 使用 循環(huán) mysql
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top