首页 > 数据库技术 > 详细

MySQL中的流程控制

时间:2020-07-20 19:32:33      阅读:69      评论:0      收藏:0      [点我收藏+]

使用 if、case、loop、leave、iterate、repeat、while  语句来控制流程。

1、if 语句

            IF i_staff_id =2 THEN
                 SET @x1 = @x1 + d_amont;
            ELSE
                set @x2 = @x2 +d_amount;
            end if;

 

2、case 语句

CASE 
    WHEN i_staff_id = 2 THEN
        set @x1 = @x1 + d_amount
    ELSE
        set @x2 = @x2 + d_amount
END CASE;

或者

CASE i_staff_id 
    WHEN 2 THEN
        set @x1 = @x1 + d_amount
    ELSE
        set @x2 = @x2 + d_amount
END CASE;

 

3、loop 语句(通常和 leave 语句一起使用)

4、leave 语句

CREATE PROCEDURE actor_insert ( ) BEGIN
    
    SET @x = 0;
    ins :LOOP   
        SET @x = @x + 1
        IF
            @x = 100 THEN
        LEAVE ins;
            
        END IF;
        INSERT INTO actor ( first_name, last_name )
        VALUES( Test, 201 );
        
    END LOOP label;

END;
call actor_insert();
select count(*) from actor where first_name=Test

 

5、iterate 语句

CREATE PROCEDURE actor_insert() BEGIN
    
    SET @x = 0;
    ins :LOOP
            
        SET @x = @x + 1;
        IF @x = 10 THEN
        LEAVE ins;
            
        END IF;
        INSERT INTO actor ( actor_id, first_name, last_name )
        VALUES( @x + 200, Test, @x );
        
    END LOOP ins;

END;
call actor_insert();
select actor_id,first_name,last_name from actor where first_name=Test;

 

6、REPATE 语句

    REPEAT
    FETCH cur_payment INTO i_staff_id, d_amount;
      if i_staff_id =2 THEN
                SET @x1 = @x1 + d_amont;
            ELSE
                set @x2 = @x2 +d_amount;
            end if;
    
    UNTIL 0 END REPEAT;

 

7、while 语句

CREATE PROCEDURE loop_demo() BEGIN
    
    SET @x = 1,@x1 = 1;
    REPEAT
            
            SET @x = @x + 1;
    UNTIL @x > 0 END REPEAT;
    WHILE @x < 0 DO
            
            SET @x1 = @x1 + 1;
        
    END WHILE;

END;
call loop_demo();

 

MySQL中的流程控制

原文:https://www.cnblogs.com/kate7/p/13346442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!