亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

mysql存儲過程基礎之遍歷多表記錄后插入第三方表中詳解

2024-07-25 19:08:40
字體:
來源:轉載
供稿:網友

前言

自從學過存儲過程后,就再也沒有碰過存儲過程,這是畢業后寫的第一個存儲過程。

因為項目里設備的種類比較多,分別存在不同的數據表中,java中對應不同的java bean對象,想要統一管理有點困難。最近正好要開發一個功能模塊,就是需要統一對設備進行處理,想著為了以后都能方便的統一處理各種設備,就從現在開始設計一套方案管理起這些項目吧。

如何統一管理呢?

如果從項目一開始設計的時候就能考慮到項目會發展成今天這樣,當初就應該抽取公共父類,對所有類型的所有公共字段進行統一抽取,這樣無論添加多少模塊,需要對設備進行操作的時候,都只需要關聯統一父類,數據間的關系就清晰多了,開發也會簡單很多。

那么現在抽取呢?還來得及嗎?

應該是來不及了,因為項目已經發展壯大了,已經開發了很多功能,一旦現在抽取,需要修改的地方就太多了,沒有那么多時間來完成這項工作。

那還有別的方法嗎?

我也不曉得人家的項目是如何處理這樣的問題的,但是就我思考,可以學習下注冊表的思想,電腦中裝有很多很多的軟件,各個軟件也是各部相同,但是每個軟件安裝的時候都會寫一條信息到注冊表中,方便電腦對軟件的集中管理。是不是感覺這個方案還不錯

項目里需要做的就是:1、添加一個注冊表對象;2、添加設備的時候,都要把公共的很重要的信息寫到注冊表中,更新和刪除也要同步操作注冊表;3、一個很重要的工作,曾經已經添加到項目中的設備信息要怎么辦呢?他們都沒有注冊信息,難不成要放棄對他們的管理?或者是刪除重新添加?不?。?!只需要寫一個存儲過程,遍歷表里已經存在的設備信息,將其插入注冊表中。

好了,人生第一個存儲過程就這樣拉開序幕了,下面要亮出我的第一個存儲過程了:

mysql,存儲過程,遍歷多表記錄

寫的過程中呢肯定是有遇到各種問題的

首先,不記得有哪些循環語句了,下面科普一下

第一種 while 循環

while循環語法:

while 條件 DO

            循環體;

end while;

第二種 loop 循環

loop 循環語法:

loop_name:loop

        if 條件 THEN -- 滿足條件時離開循環

                leave loop_name;  -- 和 break 差不多都是結束訓話

        end if;

end loop;

第三種 repeat 循環

repeat 循環語法

repeat

    循環體

until 條件 end repeat;

 其次,遇到一個問題,循環的時候,最后一條記錄總是被執行了兩次。

一開始使用的是repeat循環體,以為是因為還沒有判斷就執行了,肯定是不對的,應該先判斷,再執行,以為換一種循環語句便可以了

原先是這樣的

mysql,存儲過程,遍歷多表記錄

后來改成了這樣

mysql,存儲過程,遍歷多表記錄

看著沒毛病吧,是先判斷后做的,但是結果還是不對,仔細研究了一下,發現,當游標走到最后一行的時候,執行insert沒錯,但是這個時候的標記值依然是正常的,會再進入循環體,這個時候再去fetch下一個游標的時候,就獲取不到了,標記值會發生改變,但是插入語句依然執行了,執行后,下一次循環才不符合條件,跳出的循環,因此,應該是游標下移一行后進行判斷,比如在fetch語句后面加一句if判斷,或者是像下面這樣,先移動游標,再判斷插入

mysql,存儲過程,遍歷多表記錄

最后貼上代碼吧,方便以后自己復制粘貼,不是有句話叫 ”天下代碼一大抄,看你會不會抄“ ,其實開發的日常也就是復制粘貼啦

BEGIN  DECLARE dsi_id LONG; DECLARE dsi_name varchar(300); DECLARE dsi_areaid LONG; DECLARE dsi_orgzid LONG; DECLARE dsi_clazz varchar(300);  declare no_more_departments integer DEFAULT 0; DECLARE cursor_employee CURSOR FOR SELECT  dsi.id,  dsi.inputname,  dsi.deviceArea_id,  sd.organization_id,  "DeviceSwitchInfo" FROM  tip_s_deviceswitchinfo dsi LEFT JOIN tip_s_systemdeviceinfo sd ON dsi.Device_id = sd.id UNION SELECT  dsi.id,  dsi.outputname,  dsi.deviceArea_id,  sd.organization_id,  "DeviceSwitchOutPut" FROM  tip_s_DeviceSwitchOutPut dsi LEFT JOIN tip_s_systemdeviceinfo sd ON dsi.Device_id = sd.id UNION SELECT  dsi.id,  dsi.analogname,  dsi.deviceArea_id,  sd.organization_id,  "AnalogInputInfo" FROM  tip_s_AnalogInputInfo dsi LEFT JOIN tip_s_systemdeviceinfo sd ON dsi.Device_id = sd.id UNION SELECT  dsi.id,  dsi.devicename,  dsi.area_id,  sd.organization_id,  "SmartDeviceInfo" FROM  tip_smart_deviceinfo dsi LEFT JOIN tip_s_systemdeviceinfo sd ON dsi.deviceid = sd.id; DECLARE CONTINUE HANDLER FOR NOT FOUND  SET no_more_departments = 1; OPEN cursor_employee;  FETCH cursor_employee INTO dsi_id, dsi_name, dsi_areaid, dsi_orgzid, dsi_clazz; WHILE !no_more_departments DO INSERT INTO tip_m_deviceregister (  deviceId, NAME, area_id, orgz_id, deviceClass, active, version ) VALUES (dsi_id, dsi_name, dsi_areaid, dsi_orgzid, dsi_clazz, 1, 1); FETCH cursor_employee INTO dsi_id, dsi_name, dsi_areaid, dsi_orgzid, dsi_clazz; END WHILE; CLOSE cursor_employee;END

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久成人18免费网站| 日韩在线观看免费av| 成人激情视频在线观看| 日韩福利伦理影院免费| 日韩亚洲精品电影| xvideos国产精品| 欧美日韩中文字幕在线视频| 久久视频在线播放| 91国语精品自产拍在线观看性色| 亚洲女成人图区| 国产精品久久精品| 狠狠色狠狠色综合日日小说| 麻豆成人在线看| 久久艹在线视频| 亚洲欧美国产精品va在线观看| 国产香蕉一区二区三区在线视频| 亚洲三级 欧美三级| 538国产精品一区二区在线| 日韩免费观看在线观看| 欧美丝袜一区二区三区| 日韩电影中文字幕av| 91久久久久久久一区二区| 日韩av在线免费看| 国产精品美女午夜av| 久热精品视频在线观看一区| 国产剧情久久久久久| 国产自产女人91一区在线观看| 色老头一区二区三区| 亚洲国产精品成人一区二区| 日韩h在线观看| 欧美日韩在线免费| 欧美亚洲国产另类| 国产精品中文在线| 日韩在线中文视频| 国产成人自拍视频在线观看| 2020欧美日韩在线视频| 日韩精品极品视频| 国模精品系列视频| 日本一区二三区好的精华液| 视频在线一区二区| 色婷婷综合久久久久中文字幕1| 亚洲精品动漫久久久久| 久久人人爽人人爽爽久久| 国产一区玩具在线观看| 日韩电影中文字幕| 亚洲人成在线播放| 91精品啪在线观看麻豆免费| 日本91av在线播放| 一本色道久久综合亚洲精品小说| 亚洲精品国精品久久99热| 国产啪精品视频网站| 亚洲精品国产综合区久久久久久久| 成年无码av片在线| 午夜精品一区二区三区在线视| 亚洲影视九九影院在线观看| 日韩av一区在线观看| 青草青草久热精品视频在线网站| 国产乱人伦真实精品视频| 国产精品 欧美在线| 国产日韩欧美视频| 成人免费视频xnxx.com| 欧美黑人巨大xxx极品| 亚洲免费av网址| 亚洲精品小视频在线观看| 国产精品久久久久久久久久免费| 亚洲精品国精品久久99热| 亚洲乱码一区二区| 欧美华人在线视频| 欧美大肥婆大肥bbbbb| 欧美精品九九久久| 国产精品免费久久久| 中文字幕视频在线免费欧美日韩综合在线看| 91夜夜未满十八勿入爽爽影院| 日韩av在线直播| 91精品国产高清久久久久久久久| 色偷偷9999www| 欧美日韩国产中文精品字幕自在自线| 成人夜晚看av| 久精品免费视频| 午夜精品久久久久久久久久久久| 岛国av午夜精品| 日本在线观看天堂男亚洲| 正在播放国产一区| 亚洲女人天堂成人av在线| 成人h猎奇视频网站| 久久久久久久久久久免费精品| 91免费看片网站| 成人一区二区电影| 夜夜嗨av色一区二区不卡| 色偷偷偷综合中文字幕;dd| 日韩大片免费观看视频播放| 日本中文字幕成人| 精品久久久久久久久久久久久| 亚洲乱码国产乱码精品精| 97视频在线播放| 久久久精品在线| 欧美一级视频免费在线观看| 国产成人av网址| 少妇精69xxtheporn| 日韩在线播放一区| 国产精品久久久久久久久粉嫩av| 欧美日韩视频免费播放| 欧美激情三级免费| 欧美成人在线免费视频| 91香蕉国产在线观看| 国产精品三级久久久久久电影| 国语自产精品视频在线看一大j8| 亚洲嫩模很污视频| 国产精品99久久久久久久久久久久| 亚洲乱亚洲乱妇无码| 日韩中文字幕在线| 日韩乱码在线视频| 午夜精品久久久久久久99黑人| 亚洲free嫩bbb| 精品久久在线播放| 国产亚洲精品91在线| 欧美在线视频一区| 成人免费淫片aa视频免费| 亚洲精品理论电影| 日韩大陆毛片av| 亚洲天堂免费在线| 国产成人97精品免费看片| 成人av资源在线播放| 成人激情电影一区二区| 日韩av网站在线| 亚洲美女在线看| 亚洲jizzjizz日本少妇| 色噜噜久久综合伊人一本| 色综合久久天天综线观看| 亚洲国产日韩欧美在线图片| 国产91精品久久久久| 亚洲精品国产综合区久久久久久久| 国产91在线高潮白浆在线观看| 日韩成人在线视频观看| 亚洲第一中文字幕| 亚洲精品欧美日韩专区| 久久中文字幕国产| 亚洲成人黄色网| 精品福利视频导航| 久久久久久久电影一区| 高清一区二区三区四区五区| 日韩欧美999| 久久久久久国产精品美女| 国产日韩欧美黄色| 精品久久久久人成| 96pao国产成视频永久免费| 精品国产一区久久久| 日本欧美一二三区| 中文字幕视频一区二区在线有码| 精品亚洲一区二区三区四区五区| 欧美成人激情视频免费观看| 国产精品揄拍一区二区| 韩国三级日本三级少妇99| 成人激情视频在线播放| 欧美性视频网站| 国产网站欧美日韩免费精品在线观看| 色婷婷亚洲mv天堂mv在影片| 国产男人精品视频| 精品国产电影一区| 人体精品一二三区| 日本高清视频一区| 成人黄色av网站| 欧美大尺度激情区在线播放| 国产精品久久久久久中文字|