国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL存儲(chǔ)過程使用實(shí)例詳解

2024-07-24 12:47:50
字體:
供稿:網(wǎng)友

例1、一個(gè)簡(jiǎn)單存儲(chǔ)過程游標(biāo)實(shí)例

復(fù)制代碼 代碼如下:

DELIMITER $$
DROP PROCEDURE IF EXISTS getUserInfo $$
CREATE PROCEDURE getUserInfo(in date_day datetime)
--
-- 實(shí)例
-- 存儲(chǔ)過程名為:getUserInfo
-- 參數(shù)為:date_day日期格式:2008-03-08
--
    BEGIN
declare _userName varchar(12); -- 用戶名
declare _chinese int ; -- 語文
declare _math int ;    -- 數(shù)學(xué)
declare done int;
-- 定義游標(biāo)
DECLARE rs_cursor CURSOR FOR SELECT username,chinese,math from userInfo where datediff(createDate, date_day)=0;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
-- 獲取昨天的日期
if date_day is null then
   set date_day = date_add(now(),interval -1 day);
end if;
open rs_cursor;
cursor_loop:loop
   FETCH rs_cursor into _userName, _chinese, _math; -- 取數(shù)據(jù)

   if done=1 then
    leave cursor_loop;
   end if;
   -- 更新表
   update infoSum set total=_chinese+_math where UserName=_userName;
end loop cursor_loop;
close rs_cursor;

    END$$
DELIMITER ;
 

例2、存儲(chǔ)過程游標(biāo)循環(huán)跳出現(xiàn)
在MySQL的存儲(chǔ)過程中,游標(biāo)操作時(shí),需要執(zhí)行一個(gè)conitnue的操作.眾所周知,MySQL中的游標(biāo)循環(huán)操作常用的有三種,LOOP,REPEAT,WHILE.三種循環(huán),方式大同小異.以前從沒用過,所以記下來,方便以后查閱.
1.REPEAT

復(fù)制代碼 代碼如下:

REPEAT
    Statements;
  UNTIL expression
END REPEAT
demo
DECLARE num INT;
DECLARE my_string  VARCHAR(255);
REPEAT
SET  my_string =CONCAT(my_string,num,',');
SET  num = num +1;
  UNTIL num <5
END REPEAT;

2.WHILE
復(fù)制代碼 代碼如下:

WHILE expression DO
    Statements;
END WHILE
demo
DECLARE num INT;
DECLARE my_string  VARCHAR(255);
SET num =1;
SET str ='';
  WHILE num  < span>10DO
SET  my_string =CONCAT(my_string,num,',');
SET  num = num +1;
END WHILE;
3.LOOP(這里面有非常重要的ITERATE,LEAVE)
 代碼如下 復(fù)制代碼
DECLARE num  INT;
DECLARE str  VARCHAR(255);
SET num =1;
SET my_string ='';
  loop_label:  LOOP
IF  num <10THEN
      LEAVE  loop_label;
ENDIF;
SET  num = num +1;
IF(num mod3)THEN
      ITERATE  loop_label;
ELSE
SET  my_string =CONCAT(my_string,num,',');
ENDIF;
END LOOP;
 

PS:可以這樣理解ITERATE就是我們程序中常用的contiune,而ITERATE就是break.當(dāng)然在MySQL存儲(chǔ)過程,需要循環(huán)結(jié)構(gòu)有個(gè)名稱,其他都是一樣的.
例3,mysql 存儲(chǔ)過程中使用多游標(biāo)

先創(chuàng)建一張表,插入一些測(cè)試數(shù)據(jù):

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平和县| 承德县| 贵港市| 南溪县| 灌云县| 平乡县| 连南| 井研县| 明溪县| 湟源县| 涿鹿县| 洮南市| 台前县| 贡觉县| 玛沁县| 南郑县| 调兵山市| 镇宁| 上饶县| 喀喇沁旗| 阿克| 祁连县| 平湖市| 广宗县| 蕲春县| 霍邱县| 三亚市| 永川市| 霍邱县| 凯里市| 邢台县| 许昌县| 三原县| 淅川县| 长兴县| 玛曲县| 正安县| 益阳市| 乌兰浩特市| 二连浩特市| 玉门市|