代码执行结构:顺序结构、分支机构、循环结构
分支结构:实现准备多个代码块,按照条件选择执行某段代码
在mysql中只有if分支
基本语法
if 条件判断 then
-- 满足条件要执行的代码;
else
-- 不满足条件要执行的代码
end if;
触发器结合if分支:判断商品库存是否足够,不够不能生成订单
-- 触发器:订单生成之前要判断库存是否满足
delimiter %%
create trigger before_order before insert on my_order for each row
begin
-- 判断商品库存是否足够
-- 获取商品库存:商品库存在表中
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 ;
-- 插入订单
insert into my_order values(null,1,1000);
循环结构:某段代码在指定条件下重复执行
while循环(没有for循环)
while 条件判断 do
-- 满足条件要执行的循环代码
-- 变更循环条件
end while;
循环控制:在循环内部进行处理,进行循环的判断和控制
mysql中没有对应的continue和break,但是有
iterate:迭代,类似continue,后面的代码不执行,循环重新来过
leave:离开,类似break,循环结束
使用方式 :tterate/leave 循环名字;
-- 定义循环名字
循环名字:while 条件 do
-- 循环体
-- 循环控制
leave/iterate 循环名字
end while;