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

navicat中創(chuàng)建存儲(chǔ)過(guò)程、觸發(fā)器和使用游標(biāo)的簡(jiǎn)單實(shí)例(圖文)

 更新時(shí)間:2017年02月05日 20:12:59   投稿:mdxy-dxy  
這篇文章主要介紹了navicat中創(chuàng)建存儲(chǔ)過(guò)程、觸發(fā)器和使用游標(biāo)的簡(jiǎn)單實(shí)例,需要的朋友可以參考下

1、建表
首先先建兩張表(users表和number表),具體設(shè)計(jì)如下圖:
1.jpg
2.jpg

2、存儲(chǔ)過(guò)程
寫(xiě)一個(gè)存儲(chǔ)過(guò)程,往users表中插入數(shù)據(jù),創(chuàng)建過(guò)程如下:
3.jpg
4.jpg
5.jpg

代碼如下

BEGIN
 #Routine body goes here...
 declare n bigint;
 set n = 201121029684;
 while n <= 201121029694
 do
 insert into users(student_ID) values(n);
 set n = n + 1;
 end while;
END

6.jpg
執(zhí)行存儲(chǔ)過(guò)程后可以看到users表中的數(shù)據(jù)如下:
7.jpg

整個(gè)存儲(chǔ)過(guò)程的編寫(xiě)就完成了,當(dāng)然這只是一個(gè)極為簡(jiǎn)單的例子,僅供入門(mén)參考。

3、觸發(fā)器

在寫(xiě)觸發(fā)器之前,我們先把users的數(shù)據(jù)清空

truncate table users; 

現(xiàn)在我們有兩個(gè)表,我要做的事情就是,當(dāng)我往users中插入數(shù)據(jù)后,number中也相應(yīng)變化:

例如,number表中有一條初始數(shù)據(jù),id=1,num=0;

當(dāng)我往users中插入一條數(shù)據(jù)后,就觸發(fā)number表中的num字段就加1,也就是記錄用戶(hù)數(shù)。

下面我們來(lái)實(shí)現(xiàn)這個(gè)小小的功能。

右擊users表,選擇設(shè)計(jì)表

8.jpg
選擇觸發(fā)器選項(xiàng)
9.jpg
10.jpg
11.jpg

begin
 update number
 set num = (select count(*) from users) ;
end

保存后,再往users表中添加新數(shù)據(jù),再查看一下number中的數(shù)據(jù),你會(huì)神奇的發(fā)現(xiàn),number表中的數(shù)據(jù)也變了,自己動(dòng)手試一下吧!

ps:存儲(chǔ)過(guò)程需要程序員自己去執(zhí)行,觸發(fā)器,顧名思義,自動(dòng)觸發(fā)。

4、游標(biāo)使用
我現(xiàn)在想做的是將student_ID字段都加上100,通過(guò)這個(gè)例子簡(jiǎn)單展示一下游標(biāo)的使用。

創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,創(chuàng)建方式參考上面步驟。存儲(chǔ)過(guò)程代碼如下:

12.jpg

BEGIN
 #Routine body goes here...

 declare tmp bigint default 0;
 declare cur CURSOR FOR SELECT student_ID FROM users; -- 定義游標(biāo)
 /*
 02000 發(fā)生下述異常之一: 
 SELECT INTO 語(yǔ)句或 INSERT 語(yǔ)句的子查詢(xún)的結(jié)果為空表。 
 在搜索的 UPDATE 或 DELETE 語(yǔ)句內(nèi)標(biāo)識(shí)的行數(shù)為零。 
 在 FETCH 語(yǔ)句中引用的游標(biāo)位置處于結(jié)果表最后一行之后。


 */
 declare CONTINUE HANDLER FOR SQLSTATE '02000' set tmp = 0; 


 OPEN cur; -- 打開(kāi)游標(biāo)
 FETCH cur INTO tmp; -- 游標(biāo)向下走一步


 WHILE(tmp != 0)
 DO 
 select tmp; -- 將tmp打印出來(lái),會(huì)發(fā)現(xiàn)tmp就像一個(gè)指針,一開(kāi)始指向第一行,游標(biāo)走一步,則指向下一行記錄


 UPDATE users
 SET student_ID = tmp + 100
 WHERE student_ID = tmp;
 FETCH cur INTO tmp;
 END WHILE;

 CLOSE cur; -- 關(guān)閉游標(biāo)
END

執(zhí)行上面的存儲(chǔ)過(guò)程,你會(huì)發(fā)現(xiàn),users中的數(shù)據(jù)如你所愿的發(fā)生了變化。

相關(guān)文章

  • MySQL數(shù)據(jù)庫(kù)查看日志操作指南

    MySQL數(shù)據(jù)庫(kù)查看日志操作指南

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)查看日志操作的相關(guān)資料,文中講了MySQL中的四種日志,分別是錯(cuò)誤日志、二進(jìn)制日志、查詢(xún)?nèi)罩竞吐樵?xún)?nèi)罩?需要的朋友可以參考下
    2025-02-02
  • MySQL的DELETE(刪除數(shù)據(jù))用法解讀

    MySQL的DELETE(刪除數(shù)據(jù))用法解讀

    本文將詳細(xì)介紹DELETE語(yǔ)句的基本語(yǔ)法、高級(jí)用法、性能優(yōu)化策略以及注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 5個(gè)MySQL GUI工具推薦,幫助你進(jìn)行數(shù)據(jù)庫(kù)管理

    5個(gè)MySQL GUI工具推薦,幫助你進(jìn)行數(shù)據(jù)庫(kù)管理

    這篇文章主要介紹了5個(gè)MySQL GUI工具推薦,幫助大家更好的進(jìn)行MySQL數(shù)據(jù)庫(kù)管理,感興趣的朋友可以了解下
    2020-08-08
  • Mac上安裝MySQL過(guò)程分享

    Mac上安裝MySQL過(guò)程分享

    這篇文章主要介紹了Mac上安裝MySQL過(guò)程分享,本文共分4步完成,簡(jiǎn)單易懂,需要的朋友可以參考下
    2014-11-11
  • mysql數(shù)據(jù)庫(kù)分區(qū)的使用

    mysql數(shù)據(jù)庫(kù)分區(qū)的使用

    MySQL分區(qū)技術(shù)通過(guò)將大表分割成多個(gè)較小片段,提高查詢(xún)性能、管理效率和數(shù)據(jù)存儲(chǔ)效率,本文就來(lái)介紹一下mysql數(shù)據(jù)庫(kù)分區(qū)的使用,感興趣的可以了解一下
    2025-01-01
  • MySQL PHP語(yǔ)法淺析

    MySQL PHP語(yǔ)法淺析

    在本篇文章里小編給大家分享了關(guān)于MySQL PHP語(yǔ)法的相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)參考下。
    2019-02-02
  • mysql表的內(nèi)連和外連實(shí)戰(zhàn)記錄

    mysql表的內(nèi)連和外連實(shí)戰(zhàn)記錄

    在開(kāi)發(fā)中我們的業(yè)務(wù)需求有時(shí)候是復(fù)雜的,多張表聯(lián)合查詢(xún)的時(shí)候是有多種方式的,面對(duì)不同的需求,靈活使用不同的表連接方式,這篇文章主要給大家介紹了關(guān)于mysql表內(nèi)連和外連的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Mysql5.7修改root密碼教程

    Mysql5.7修改root密碼教程

    本文給大家分享的是個(gè)人在使用mysql5.7修改root密碼的時(shí)候遇到的問(wèn)題,以及解決方法,推薦給有相同需求的小伙伴參考下。
    2016-02-02
  • MySQL中預(yù)處理語(yǔ)句prepare、execute與deallocate的使用教程

    MySQL中預(yù)處理語(yǔ)句prepare、execute與deallocate的使用教程

    這篇文章主要介紹了MySQL中預(yù)處理語(yǔ)句prepare、execute與deallocate的使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • MySQL獲取當(dāng)前時(shí)間的多種方式總結(jié)

    MySQL獲取當(dāng)前時(shí)間的多種方式總結(jié)

    負(fù)責(zé)的項(xiàng)目中使用的是mysql數(shù)據(jù)庫(kù),頁(yè)面上要顯示當(dāng)天所注冊(cè)人數(shù)的數(shù)量,獲取當(dāng)前的年月日,下面這篇文章主要給大家總結(jié)介紹了關(guān)于MySQL獲取當(dāng)前時(shí)間的多種方式,需要的朋友可以參考下
    2023-02-02

最新評(píng)論

富顺县| 青铜峡市| 西平县| 台江县| 玉龙| 浦江县| 张家界市| 金川县| 无棣县| 乐清市| 连南| 文安县| 海口市| 深水埗区| 克拉玛依市| 桦川县| 兴海县| 桑植县| 台江县| 大姚县| 平泉县| 二连浩特市| 泰和县| 尉氏县| 浦城县| 安丘市| 宁远县| 穆棱市| 汉阴县| 沙田区| 尼玛县| 宜君县| 徐闻县| 竹北市| 清涧县| 会同县| 绥棱县| 子长县| 南澳县| 西平县| 星子县|