解发器
当执行某种操作时解发的行为。
比如, 当表变动时触发的动作。
像商城订单, 当下单时, 库存减少。
语法:
create trigger trigger_name
after/befor insert/update/delete on 表名
for each row(这句话固定的)
begin
sql语句 #一句式多句
end;
单纯触发器执行一条SQL语句, 可以把begin/end去掉, 如果是多条语句的话,可能要设置结束符为别的:
delimiter $
把默认的 ; 结束符改为 $;
注意不要加 ; 号, 如果加了;号, 相当于结束符是 $; 了
解发器的行为:
对insert而言, 新增的行用new表示, 行中的第一个字段, 用 new.字段名 表示
eg:
create trigger tg2
after insert on o
begin update g set num=num-new.much where id=new.gid;
end$
对delete而言, 删掉的行行用old表示, 行中的第一个字段, 用 old.字段名 表示
对于update来说, 修改前的数据用old表示, 修改后的行变成用new表示
查看触发器:
show triggers;