mysql存储过程now_Mysql的存储过程

十一. CASE语句

CASE case_value

WHEN when_value THEN statement_list         [WHEN when_value THEN

statement_list] ...         [ELSE statement_list]  END CASEOr:

CASE       WHEN search_condition THEN statement_list         [WHEN

search_condition THEN statement_list] ...         [ELSE statement_list]

END CASE

存储程序的CASE语句实现一个复杂的条件构造。如果search_condition 求值为真,相应的SQL被执行。如果没有搜索条件匹配,在ELSE子句里的语句被执行。

示例:

delimiter //CREATE

PROCEDURE p2 (IN parameter1 INT)BEGIN     DECLARE variable1 INT;     SET

variable1 = parameter1 + 1;     CASE variable1          WHEN 0 THEN

INSERT INTO t  VALUES (17);          WHEN 1 THEN INSERT INTO t   VALUES

(18);          ELSE INSERT INTO t VALUES (19);     END CASE;END//

十二. 循环语句

WHILE … END

WHILE示例:delimiter //CREATE PROCEDURE p4 ()BEGIN       DECLARE v INT;

SET v = 0;       WHILE v < 5 DO           INSERT INTO t VALUES

(v);           SET v = v + 1;      END WHILE;END //

LOOP … END LOOP示例:CREATE

PROCEDURE p5 ()BEGIN     DECLARE v INT;     SET v = 0;     loop_label:

LOOP         INSERT INTO t VALUES (v);         SET v = v + 1;         IF

v >= 5 THEN             LEAVE loop_label;         END IF;    END

LOOP;END //[begin_label:] LOOP         statement_listEND LOOP

[end_label]LOOP允许某特定语句或语句群的重复执行,实现一个简单的循环构造。在循环内的语句一直重复直到循环被退出,退出通常伴随着一个LEAVE

语句。

十三. 补充:迭代(ITERATE)语句

CREATE PROCEDURE p7

()BEGIN     DECLARE v INT;     SET v = 0;     loop_label: LOOP

IF v = 3 THEN             SET v = v + 1;             ITERATE

loop_label;         END IF;         INSERT INTO t VALUES (v);

SET v = v + 1;         IF v >= 5 THEN             LEAVE

loop_label;         END IF;     END LOOP;END //

十四. 注释语法:

mysql存储过程可使用两种风格的注释双模杠:--,该风格一般用于单行注释c风格:/* 注释内容 */, 一般用于多行注释

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值