国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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使用游標(biāo)批量處理進(jìn)行表操作

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

MySQL使用游標(biāo)批量處理進(jìn)行表操作

MySQL使用游標(biāo)批量處理進(jìn)行表操作:一、概述 本章節(jié)介紹使用游標(biāo)來批量進(jìn)行表操作,包括批量添加索引、批量添加字段等。如果對存儲過程、變量定義、預(yù)處理還不是很熟悉先閱讀我前面寫過的關(guān)于這三個概念的文章,只有先了解了這三個概念才能更好的理解這篇文章。 理解MySQL變量和條件://www
推薦度:
導(dǎo)讀MySQL使用游標(biāo)批量處理進(jìn)行表操作:一、概述 本章節(jié)介紹使用游標(biāo)來批量進(jìn)行表操作,包括批量添加索引、批量添加字段等。如果對存儲過程、變量定義、預(yù)處理還不是很熟悉先閱讀我前面寫過的關(guān)于這三個概念的文章,只有先了解了這三個概念才能更好的理解這篇文章。 理解MySQL變量和條件://www

一、概述

本章節(jié)介紹使用游標(biāo)來批量進(jìn)行表操作,包括批量添加索引、批量添加字段等。如果對存儲過程、變量定義、預(yù)處理還不是很熟悉先閱讀我前面寫過的關(guān)于這三個概念的文章,只有先了解了這三個概念才能更好的理解這篇文章。

理解MySQL變量和條件://www.gxlcms.com/article/81375.htm

理解Mysql prepare預(yù)處理語句://www.gxlcms.com/article/81378.htm

理解MySQL存儲過程和函數(shù)://www.gxlcms.com/article/81381.htm

二、正文

1、聲明光標(biāo)

DECLARE cursor_name CURSOR FOR select_statement

這個語句聲明一個光標(biāo)。也可以在子程序中定義多個光標(biāo),但是一個塊中的每一個光標(biāo)必須有唯一的名字。

注意:SELECT語句不能有INTO子句。

2、打開光標(biāo)

DECLARE cursor_name CURSOR FOR select_statement

這個語句打開先前聲明的光標(biāo)。

3、前進(jìn)光標(biāo)

FETCH cursor_name INTO var_name [, var_name] ...

這個語句用指定的打開光標(biāo)讀取下一行(如果有下一行的話),并且前進(jìn)光標(biāo)指針。

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

CLOSE cursor_name

這個語句關(guān)閉先前打開的光標(biāo)。

 5、批量添加索引

共享一個批量添加索引的游標(biāo),當(dāng)一個庫中有上百張表結(jié)構(gòu)一樣但是名稱不一樣的表,這個時候批量操作就變得簡單了。

#刪除創(chuàng)建存儲過程
DROP PROCEDURE IF EXISTS FountTable;
DELIMITER $$
CREATE PROCEDURE FountTable()
BEGIN
 DECLARE TableName varchar(64); 
 #聲明游標(biāo)
 DECLARE cur_FountTable CURSOR FOR SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='front' AND TABLE_NAME LIKE 'student%';
 DECLARE EXIT HANDLER FOR not found CLOSE cur_FountTable;
 #打開游標(biāo)
 OPEN cur_FountTable;
 REPEAT
 FETCH cur_FountTable INTO TableName;
 #定義預(yù)處理
 SET @SQLSTR1 = CONCAT('create index Flag on ','`',TableName,'`',' (Flag); '); 
 SET @SQLSTR2 = CONCAT('create index State on ','`',TableName,'`',' (State); '); 
 SET @SQLSTR3 = CONCAT('create index upload on ','`',TableName,'`',' (upload); '); 
 SET @SQLSTR4 = CONCAT('create index ccFlag on ','`',TableName,'`',' (lockFlag); '); 
 SET @SQLSTR5 = CONCAT('create index comes on ','`',TableName,'`',' (comes); '); 
 ###SET @SQLSTR=CONCAT(@SQLSTR1,@SQLSTR2,@SQLSTR3,@SQLSTR4,@SQLSTR5 );
 PREPARE STMT1 FROM @SQLSTR1; 
 PREPARE STMT2 FROM @SQLSTR2; 
 PREPARE STMT3 FROM @SQLSTR3; 
 PREPARE STMT4 FROM @SQLSTR4; 
 PREPARE STMT5 FROM @SQLSTR5; 
 EXECUTE STMT1; 
 EXECUTE STMT2; 
 EXECUTE STMT3; 
 EXECUTE STMT4; 
 EXECUTE STMT5; 
 DEALLOCATE PREPARE STMT1;
 DEALLOCATE PREPARE STMT2;
 DEALLOCATE PREPARE STMT3;
 DEALLOCATE PREPARE STMT4;
 DEALLOCATE PREPARE STMT5;
 # SELECT @SQLSTR;
 
 UNTIL 0 END REPEAT;
 #關(guān)閉游標(biāo)
 CLOSE cur_FountTable;

END $$
DELIMITER ;


CALL FountTable();

這里有幾個細(xì)節(jié):

  • 在聲明游標(biāo)的時候記得修改自己需要查詢的條件
  • 在預(yù)處理這里也需要改成對應(yīng)的字段
  • 在定義條件變量的時候這里我使用的是EXIT就是遇到錯誤就中斷,當(dāng)然也可以使用CONTINUE 。 
  • 注意:由于mysql在存儲過程當(dāng)中無法將查詢出來的變量名直接作為表名來用,所以這里要用到動態(tài)拼接SQL的方法,但是通常的SET CONCAT的方法并不管用,所以這里就使用了PREPARE來進(jìn)行預(yù)編譯。

     總結(jié)

     批量處理雖然有時候能提高工作的效率,但是帶來的潛在危險也是挺大了,所以在執(zhí)行之前必須要非常有把握你執(zhí)行的語句對數(shù)據(jù)的影響,否則在生成環(huán)境就非常危險了。

    您可能感興趣的文章:

  • mysql存儲過程 游標(biāo) 循環(huán)使用介紹
  • 基于MySQL游標(biāo)的具體使用詳解
  • Mysql的游標(biāo)的定義使用及關(guān)閉深入分析
  • MySQL存儲過程中游標(biāo)循環(huán)的跳出和繼續(xù)操作示例
  • Mysql存儲過程循環(huán)內(nèi)嵌套使用游標(biāo)示例代碼
  • mysql存儲過程中使用游標(biāo)的實(shí)例
  • mysql動態(tài)游標(biāo)學(xué)習(xí)(mysql存儲過程游標(biāo))
  • mysql的存儲過程、游標(biāo) 、事務(wù)實(shí)例詳解
  • MySql游標(biāo)的使用實(shí)例
  • Mysql存儲過程中游標(biāo)的用法實(shí)例
  • MySQL游標(biāo)概念與用法詳解
  • 聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    MySQL使用游標(biāo)批量處理進(jìn)行表操作

    MySQL使用游標(biāo)批量處理進(jìn)行表操作:一、概述 本章節(jié)介紹使用游標(biāo)來批量進(jìn)行表操作,包括批量添加索引、批量添加字段等。如果對存儲過程、變量定義、預(yù)處理還不是很熟悉先閱讀我前面寫過的關(guān)于這三個概念的文章,只有先了解了這三個概念才能更好的理解這篇文章。 理解MySQL變量和條件://www
    推薦度:
    標(biāo)簽: 批量 mysql 游標(biāo)
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品网站在线观看 | 国产精品视频福利一区二区 | 国产91一区二这在线播放 | 伊人一区 | 中文字幕在线播放第一页 | 亚洲日韩欧美视频 | 免费国产小视频在线观看 | 激情综合久久 | 国产亚洲一区二区精品 | 一级毛片免费的 | 国产免费视屏 | 亚洲国产成人久久一区久久 | 亚洲欧美日韩精品高清 | 九九精品成人免费国产片 | 一级成人a毛片免费播放 | 北条麻妃国产九九九精品视频 | 欧美 日韩 高清 | 国产欧美一区二区精品性色 | 欧美视频免费看 | 亚洲精品国产成人99久久 | 久久精品视频一区二区三区 | 久久亚洲精品国产亚洲老地址 | 欧美极品尤物在线播放一级 | 天天操夜夜做 | 久久香蕉热| 精品在线免费视频 | 亚洲 欧美 91 | 国产精品免费视频播放 | 日韩精品国产精品 | 久久久久久91香蕉国产 | 91在线精品亚洲一区二区 | 中文字幕欧美在线观看 | 欧美午夜视频 | 欧美日韩国产一区二区三区播放 | 欧美亚洲第一页 | 全免费a级毛片免费毛视频 热re91久久精品国产91热 | 日本特级淫片免费 | 中文字幕日韩欧美 | 国产精品亚洲精品日韩动图 | 日韩伦理亚洲欧美在线一区 | 亚洲欧美在线观看视频 |