mysql之触发器trigger

触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete)
语法:
    create trigger triggerName
     after/before  insert/update/delete on 表名
    for each row   #这句话在mysql是固定的
    begin
         sql语句;

    end;


我们如何在触发器引用行的值,也就是说我们要得到我们新插入的订单记录中的gid或much的值。
对于insert而言,新插入的行用new来表示,行中的每一列的值用new.列名来表示。
begin
update g set num=num-new.much where id=new.gid;

end


对于delete而言:原本有一行,后来被删除,想引用被删除的这一行,用old来表示,old.列名可以引用被删除的行的值。

    begin
        update g set num = num + old.much where id = old.gid;

    end


对于update而言:被修改的行,修改前的数据,用old来表示,old.列名引用被修改之前行中的值;
修改的后的数据,用new来表示,new.列名引用被修改之后行中的值。

begin
update g set num = num+old.much-new.much  where id = old.gid/new.gid;
end
先把旧的数量恢复再减去新的数量就是修改后的数量了。


猜你喜欢

转载自blog.csdn.net/u014001717/article/details/80077797