二十九、SQL中的if分支和while循环

代码执行结构有三种:顺序结构、分支结构、循环结构;其中顺序结构太过简单,这里不做介绍,主要介绍分支和循环结构。

1、if分支

分支结构: 事先准备多个代码块,按照条件选择性执行某段代码,其中各个条件之间用andor连接。而非&&||
if分支的基本语法:
附:在mysql中,只有if分支

	if 条件判断 then 
		执行体;
	else
		执行体;
	end if;
	if 条件判断 then 
		执行体;
	elseif 条件判断 then
		执行体;
	else
		执行体;
	end if;

实例: 触发器结合if分支,判断商品库存是否足够,不够不能生成订单,如果足够,生成订单

//创建生成器
delimiter $$
create trigger after_my_order after insert on my_order for each row
begin
   //判断商品库存是否足够
   //获取当前库存,只能用以下方式,@inv不能前移,因为需要使用它而不是显示它
   select inv from my_goods where id = new.g_id into @inv;
   if @inv<new.g_number then //表名库存剩余量小于要获取的量
      //触发器没有提供一个能够阻止事件发生的能力(所以需要暴力报错)
      insert into xxx values(xxx);
   end if;
end
$$
delimiter ;

这样,在再次插入数据时,如果商品不够用,则会直接报错。

2、while循环

循环结构: 某段代码在指定条件执行重复执行
基本语法:

  循环名字 while 条件判断 do
        执行体;
        变更循环条件;
   end while;

循环控制: 在循环内部进行循环判断和控制
leave和iterate关键字: mysql中没有对应continues和break,但是有替代品iterate(迭代),类似continue,即后面的代码不执行,循环重新来过;而leave则类似与break,直接跳出整个循环。
关键字leave和iterate使用方法: leave 循环名字;iterate 循环名字;
此时的基本语法如下:

//语法一:
循环名字 while 条件 do
       循环体
       循环控制
       iterate 循环名字;
end while;
//语法二:
循环名字 while 条件 do
       循环体
       循环控制
       leave 循环名字;
end while;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值