代码执行结构:顺序结构、分支机构、循环结构
分支结构:实现准备多个代码块,按照条件选择执行某段代码

在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;