怎么看mysql的游標(biāo) 在mysql中游標(biāo)包括兩部分

MySQL 存儲過程,獲取使用游標(biāo)查詢的結(jié)果集

MySQL 存儲過程中,使用游標(biāo)查詢,返回的是結(jié)果集時,如何查看調(diào)用存儲過程輸出結(jié)果呢?

響水網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),響水網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為響水上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的響水做網(wǎng)站的公司定做!

解決方案:存儲過程不返回數(shù)據(jù),但它能創(chuàng)建和填充另一個表。所以在存儲過程運行中創(chuàng)建臨時表。該臨時表將保存存儲過程中生成的結(jié)果集,在遍歷游標(biāo)時,用insert保存每條數(shù)據(jù)到臨時表中。后續(xù)調(diào)用時可以用select語句查詢臨時表中的存儲過程運行結(jié)果。

以下有 三種方式 使用游標(biāo)創(chuàng)建一個存儲過程,統(tǒng)計某一部門下的員工信息

方法一:Loop循環(huán)

調(diào)用存儲過程:

方法二:While 循環(huán)

調(diào)用存儲過程:

方法三:REPEAT 循環(huán)

調(diào)用存儲過程:

上述三種實現(xiàn)方法在測試過程中遇到下述問題。

調(diào)用存儲過程查詢臨時表輸出結(jié)果時,會發(fā)現(xiàn)多循環(huán)了一次,像這樣:

解決方法:

在遍歷游標(biāo)查詢結(jié)果時,先判斷游標(biāo)的結(jié)束標(biāo)志(done) 是否是為1,如果不是1,則向臨時表中插入數(shù)據(jù)。

求mysql的游標(biāo)用法詳細(xì)說明,最好有例子??!

先聲明一個游標(biāo),語法:

DECLARE v_1 VARCHAR(16);

DECLARE v_2 VARCHAR(16);

DECLARE c_XXX CURSOR FOR

SELECT c_1, c_2

FROM t_1;

同時聲明一個布爾型的變量FOUND,當(dāng)循環(huán)的條件不成立時,結(jié)束循環(huán)用的。

DECLARE FOUND BOOLEAN DEFAULT TRUE;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET FOUND = FALSE;

在使用游標(biāo)的時候,要先打開游標(biāo),語法:OPEN c_XXX;

使用的時候,要先打開游標(biāo),取出第一條數(shù)據(jù),語法: FETCH c_XXX INTO v_1, v_2;

然后才開始執(zhí)行循環(huán),語法:WHILE FOUND DO

執(zhí)行需要執(zhí)行的語句;

取下一條數(shù)據(jù)放到當(dāng)前游標(biāo)中,F(xiàn)ETCH c_XXX INTO v_1, v_2;

結(jié)束循環(huán),語法:END WHILE;

結(jié)束游標(biāo),語法:CLOSE c_cargo。有什么問題我們再溝通啊。不知道你具體要問題的是什么。

如何查看mysql的游標(biāo)(數(shù)目)?

cursor_sharing string EXACT

cursor_space_for_time boolean TRUE

open_cursors integer 300

session_cached_cursors integer 0

游標(biāo)超出一般是由于應(yīng)用中沒有關(guān)閉游標(biāo)造成的

當(dāng)前標(biāo)題:怎么看mysql的游標(biāo) 在mysql中游標(biāo)包括兩部分
分享網(wǎng)址:http://muchs.cn/article26/dogiscg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、外貿(mào)建站、網(wǎng)站設(shè)計公司網(wǎng)站排名、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)