重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
這篇文章主要介紹了數(shù)據(jù)庫mysql中怎么使用光標(biāo),具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
查詢語句可能返回多條記錄,如果數(shù)據(jù)非常大,需要在存儲過程和函數(shù)中使用光標(biāo)來逐條讀取查詢結(jié)果集中的記錄。
簡單光標(biāo)在存儲程序和函數(shù)內(nèi)被支持。語法如同在嵌入的SQL中。光標(biāo)當(dāng)前是不敏感的,只讀的及不滾動的。不敏感意為服務(wù)器可以活不可以復(fù)制它的結(jié)果表。
注意:光標(biāo)必須在聲明處理程序之前被聲明,并且變量和條件必須在聲明光標(biāo)或處理程序之前被聲明。
例如:
CREATE PROCEDURE curdemo() BEGIN DECLARE done INT DEFAULT 0; DECLARE a CHAR(16); DECLARE b,c INT; DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1; DECLARE cur2 CURSOR FOR SELECT i FROM test.t2; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN cur1; OPEN cur2; REPEAT FETCH cur1 INTO a, b; FETCH cur2 INTO c; IF NOT done THEN IF b < c THEN INSERT INTO test.t3 VALUES (a,b); ELSE INSERT INTO test.t3 VALUES (a,c); END IF; END IF; UNTIL done END REPEAT; CLOSE cur1; CLOSE cur2; END
聲明光標(biāo)
語法格式如下:declare cursor_name cursor for select_statement
cursor_name:光標(biāo)名;select_statement:select語句的內(nèi)容,返回一個用于創(chuàng)建光標(biāo)的結(jié)果集。
declare cursor_fruit cursor for select fname,fprice from fruits;
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享數(shù)據(jù)庫mysql中怎么使用光標(biāo)內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,詳細(xì)的解決方法等著你來學(xué)習(xí)!