主页
软件技术
返回
MySQL触发器

        作用:

        可以监视 增删改操作

        并触发 增删改操作

        trigger.jpg

        创建触发器

        (delimiter $)

        create  trigger 触发器名称

        after/before  insert/update/delete on 表名

        for each row

        begin

        sql 语句—一个或者多个语句,范围在 insert/update/delete内;

        end ($)

        在此需要重新设置结束符号

        delimiter $

        

        创建第一个简单触发器:

        

        效果

        

        g 表  羊自动减少 3只

        

        发现问题:

        字符集问题.jpg

        设置结尾符号语句 不可带  分号

        否则设置不成功

        

        解决方案

        

        如何在触发器中引用行的值

        

        对于insert 而言 ,新增的行用new来表示。

        行中的每一列的值,用 new.列名来表示。

        对于delete而言,删去的行用 old来表示。

        行中的每一列的值,用old.列名来表示。

        

        对于update而言,更新前的行用 old来表示。old.列名表示更新前的引用。

        更新后的行,用new.列名来表示更新后的引用。

        触发器的删除

        drop trigger 触发器名称

        

        触发器的显示

        

        清空表单

        truncate 表名

        

        购买下单实例

        1、创建满足条件的新的触发器

        

        2、执行 insert(下第一笔订单 购买 4 号商品,数量为2)

        

        3、查看o订单

        

        4、g商品表中的 对应id号得商品减少

         

        1、增加一个订单,库存相应减少

        

        2、删除一个订单,库存相应增加

        

        

        3、修改下单时,商品表数量相应发生变化

        

        

        触发器里 after 和 before的区别

        after 是先完成数据的操作,再出发时间,不能对前面的增删改作出影响。

        如果用的是 before,可以对数据进行审查。是先于触发再完成增删改,可以审查、判断、即将发生的增删改操作。

        before应用

        

        创建触发器时即可对插入数据进行影响

        create trigger buy

        before insert on o

        for each row

        begin

         if new.much >5 then

         set new.much=5;

         end if;

         update g set num = num -new.much where id = new.gid;

        end$

        


项目综合管理:工程总承包质量与进度、费用的关系探讨
咨询工程师《工程项目组织与管理》自测题(14)
中法合作“中国住宅领域提高能效与可持续发展合作项目”
B级:IPMP国际项目管理认证考试试题八
2012年一级建造师《市政专业》案例分析题(10)
2015招标师管理采购复习 服务类招标投标的主要规定
2014年1-12月辽宁涂层板(带)产量统计(分月度)
2015年咨询工程师考试《项目决策分析与评价》模拟试题(五)
信息发布:名易软件http://www.myidp.net