最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySql存儲(chǔ)過(guò)程游標(biāo)循環(huán)的解決方式

 更新時(shí)間:2026年06月14日 10:20:09   作者:hoho_12  
這段文章主要討論了在MySQL存儲(chǔ)過(guò)程中使用游標(biāo)時(shí)遇到的問(wèn)題的解決方法,特別是在跳出循環(huán)時(shí)遇到的困難,通過(guò)設(shè)置游標(biāo)變量的默認(rèn)值,成功解決了問(wèn)題,并通過(guò)在代碼中插入select語(yǔ)句進(jìn)行調(diào)試

問(wèn)題

在mysql的存儲(chǔ)過(guò)程中使用了游標(biāo)去循環(huán),之前使用是沒(méi)問(wèn)題,后續(xù)加入了一些邏輯,直接跳出循環(huán)了,不走循環(huán)里面的邏輯、

解決

在mysql中主要用以下的方式來(lái)聲明游標(biāo)與使用游標(biāo):

# 聲明標(biāo)志位,來(lái)退出循環(huán)
declare done int default 0;
# 聲明當(dāng)游標(biāo)中找不到數(shù)據(jù)時(shí),設(shè)置done為1.
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;        

游標(biāo)的使用:

open cur;
						
						posLoop:LOOP
						
								fetch cur into v_bjfh,v_yz,v_yjjb,v_dw;						
						
								if done = 1 then leave posLoop;						
								
								end if;		
	-- 關(guān)閉循環(huán)
						end loop posLoop;			
					
			-- 關(guān)閉游標(biāo)
			close cur;				
									

現(xiàn)在問(wèn)題關(guān)鍵點(diǎn)在于,走到 if done = 1 時(shí),直接跳出了。那說(shuō)明之前設(shè)置的done的默認(rèn)值沒(méi)有生效。

所以,在進(jìn)入循環(huán)之前,就給done再次設(shè)置一個(gè)默認(rèn)值0。

set done = 0;
open cur;
						
						posLoop:LOOP
						
								fetch cur into v_bjfh,v_yz,v_yjjb,v_dw;						
						
								if done = 1 then leave posLoop;						
								
								end if;		
	-- 關(guān)閉循環(huán)
						end loop posLoop;			
					
			-- 關(guān)閉游標(biāo)
			close cur;				
									

由此,解決了問(wèn)題,但是不知道為什么這個(gè)done之前是在哪里給設(shè)置成了1.

調(diào)試

mysql不像oracle那樣,可以進(jìn)行斷點(diǎn)調(diào)試,其實(shí)調(diào)試起來(lái)是比較麻煩。一般采用在里面寫(xiě)select輸出進(jìn)行調(diào)試,如下:

select done;

輸出一個(gè)定義的變量來(lái)進(jìn)行調(diào)試。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

额敏县| 江北区| 郓城县| 大石桥市| 兰州市| 曲周县| 阿勒泰市| 正镶白旗| 盱眙县| 上犹县| 内乡县| 和平县| 万源市| 营山县| 蓬溪县| 平塘县| 凯里市| 剑河县| 德惠市| 万源市| 乌拉特中旗| 琼结县| 桐庐县| 卢龙县| 高安市| 岢岚县| 电白县| 亳州市| 巴彦淖尔市| 天津市| 济阳县| 贵港市| 崇左市| 嘉黎县| 舞钢市| 邯郸县| 汪清县| 依兰县| 金华市| 江安县| 友谊县|