国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 郎溪县| 呼和浩特市| 三亚市| 民权县| 林甸县| 朝阳县| 合肥市| 蕲春县| 西乌| 佛学| 托克逊县| 万全县| 海宁市| 双城市| 稻城县| 珲春市| 徐汇区| 盐源县| 大荔县| 昌都县| 宁蒗| 麦盖提县| 洛浦县| 正阳县| 黄山市| 登封市| 江油市| 丰县| 通辽市| 枣强县| 鲁山县| 南木林县| 南雄市| 揭西县| 黄冈市| 新巴尔虎左旗| 淄博市| 南通市| 台南市| 宁陵县| 永济市|