触发器分为六个步骤:
create trigger trigger_name 触发器名称 [1]
after 在之前触发(before)还是在之后触发(after)
insert 在什么语句的时候触发添加(insert)修改(update)删除(delete)[2]
on 执行上一层语句的表名[3]
for each row[4]
begin[5]
sql1;[6]
…
sqlN;
end$[5]
比如我们下订单的时候就可能用到触发器技术,请看下面两个表,goods代表商品表,org代表订单表。
假设一个超市有3种布偶,各100只,需求:当顾客买了商品后库存对应减少。
create table goods(
gid int not null ,#商品id
name char(200) not null,#商品名称
num int not null #商品库存
)engine= myisam charset=utf8;
create table org(
oid int not null ,#订单id
gid int not null,#商品id
much int not null #要买的商品数量
)engine= myisam charset=utf8;
首先把;换成$结尾,因为mysql检测到;会误以为程序结束,而一个触发器里面会有很多;结尾的语句
不换;的结果