欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

navicat中創(chuàng)建存儲過程、觸發(fā)器和使用游標(biāo)的簡單實例(圖文)

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

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

2、存儲過程
寫一個存儲過程,往users表中插入數(shù)據(jù),創(chuàng)建過程如下:
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í)行存儲過程后可以看到users表中的數(shù)據(jù)如下:
7.jpg

整個存儲過程的編寫就完成了,當(dāng)然這只是一個極為簡單的例子,僅供入門參考。

3、觸發(fā)器

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

truncate table users; 

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

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

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

下面我們來實現(xiàn)這個小小的功能。

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

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

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

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

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

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

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

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 語句或 INSERT 語句的子查詢的結(jié)果為空表。 
 在搜索的 UPDATE 或 DELETE 語句內(nèi)標(biāo)識的行數(shù)為零。 
 在 FETCH 語句中引用的游標(biāo)位置處于結(jié)果表最后一行之后。


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


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


 WHILE(tmp != 0)
 DO 
 select tmp; -- 將tmp打印出來,會發(fā)現(xiàn)tmp就像一個指針,一開始指向第一行,游標(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í)行上面的存儲過程,你會發(fā)現(xiàn),users中的數(shù)據(jù)如你所愿的發(fā)生了變化。

相關(guān)文章

  • K8s中MySQL?數(shù)據(jù)持久化存儲的實現(xiàn)

    K8s中MySQL?數(shù)據(jù)持久化存儲的實現(xiàn)

    本文主要介紹了K8s中MySQL?數(shù)據(jù)持久化存儲的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • MySQL大小寫敏感導(dǎo)致的問題分析

    MySQL大小寫敏感導(dǎo)致的問題分析

    在本篇內(nèi)容里小編給大家整理了關(guān)于MySQL大小寫敏感導(dǎo)致的問題的詳細(xì)分析,有興趣的朋友們可以學(xué)習(xí)參考下。
    2019-06-06
  • 淺談mysql的timestamp存在的時區(qū)問題

    淺談mysql的timestamp存在的時區(qū)問題

    本文主要介紹了淺談mysql的timestamp存在的時區(qū)問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Mysqlslap MySQL壓力測試工具 簡單教程

    Mysqlslap MySQL壓力測試工具 簡單教程

    Mysqlslap是從5.1.4版開始的一個MySQL官方提供的壓力測試工具。通過模擬多個并發(fā)客戶端訪問MySQL來執(zhí)行壓力測試,同時詳細(xì)的提供了“高負(fù)荷攻擊MySQL”的數(shù)據(jù)性能報告。并且能很好的對比多個存儲引擎在相同環(huán)境下的并發(fā)壓力性能差別
    2011-10-10
  • win32 mysql 5.7.27 安裝配置方法圖文教程

    win32 mysql 5.7.27 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了win32 mysql 5.7.27 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • mysql select緩存機制使用詳解

    mysql select緩存機制使用詳解

    這篇文章主要介紹了mysql select緩存機制使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示

    MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示

    使用union操作符會將多張表中相同的數(shù)據(jù)取值一次,如果想將表1和表2中的值完整的顯示出來,可以使用union all,今天通過本文給大家分享MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示功能,需要的朋友參考下吧
    2021-08-08
  • MySQL設(shè)置表自增步長的方法

    MySQL設(shè)置表自增步長的方法

    自增字段是一種常見且重要的功能,通常用于生成唯一的標(biāo)識符,本文主要介紹了MySQL設(shè)置表自增步長的方法,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • Mysql賬號管理與引擎相關(guān)功能實現(xiàn)流程

    Mysql賬號管理與引擎相關(guān)功能實現(xiàn)流程

    Mysql中的每一種技術(shù)都使用不同的存儲機制、索引技巧、鎖定水平、并且最終提供廣泛的不同功能和能力。通過選擇不同的技術(shù),你能夠獲得額外的速度或者功能,從而改善應(yīng)用的整體功能。這些不同的技術(shù)以及配套的相關(guān)功能在MySQL中被稱作存儲引擎
    2022-10-10
  • MySQL 5.7.18 免安裝版配置教程

    MySQL 5.7.18 免安裝版配置教程

    這篇文章主要為大家詳細(xì)介紹了MySQL 5.7.18 免安裝版配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論