修改mysql结束符   delimiter name
触发器语法:
    create trigger 触发器名称  
    after/before  触发时间     //错误  ERROR 1362 (HY000): Updating of NEW row is not allowed in after trigger
    insert/update/delete 监视事件
    on 表明 监视地址
    for each row  //每一行受影响 ,触发器都执行,叫做行级触发器
    begin
        N条sql语句
        new 新数据
        old 旧数据
    end
分析
 
    监视谁: tablename
    监视动作: insert delete update
    触发时间: after
    触发事件:update
查看已有的triggers: show triggers
删除已有triggers : drop  trigger name
 
 
例: create trigger t1
        after
        insert
        on shop
        for each row
        begin
        insert into city (name,count) values(new.dealer,new.article);
        end$
 
 
 
 
mysql> show triggers\G$
*************************** 1. row ***************************
             Trigger: t5
               Event: INSERT
               Table: ord
           Statement: begin
declare
rnum int;
select num into rnum from goods where gid=new.gid;
if new.much > rnum then
set new.much = rnum;
end if;
update goods set num = num-new.much where gid = new.gid;
end
              Timing: BEFORE
             Created: NULL
            sql_mode: NO_ENGINE_SUBSTITUTION
             Definer: root@localhost
character_set_client: gbk
collation_connection: gbk_chinese_ci
  Database Collation: latin1_swedish_ci
*************************** 2. row ***************************
             Trigger: t4
               Event: UPDATE
               Table: ord
           Statement: begin
        update goods set num = num+old.much-new.much where gid=old.gid;
        end
              Timing: BEFORE
             Created: NULL
            sql_mode: NO_ENGINE_SUBSTITUTION
             Definer: root@localhost
character_set_client: gbk
collation_connection: gbk_chinese_ci
  Database Collation: latin1_swedish_ci
*************************** 3. row ***************************
             Trigger: t3
               Event: DELETE
               Table: ord
           Statement: begin
update goods set num = num+old.much where gid=old.gid;
end
              Timing: AFTER
             Created: NULL
            sql_mode: NO_ENGINE_SUBSTITUTION
             Definer: root@localhost
character_set_client: gbk
collation_connection: gbk_chinese_ci
  Database Collation: latin1_swedish_ci
3 rows in set (0.01 sec)

 

触发器事件trigger的更多相关文章

  1. SQL Server 中的触发器(trigger)

    SQL Server 触发器 触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 ...

  2. oracle PL/SQL(procedure language/SQL)程序设计之触发器(trigger)

    创建触发器 触发器类似于过程和函数,都拥有声明.执行和异常处理过程的带名PL/SQL块.与包类似,触发器必须存储在数据库中.前面已经讲过,过程是显式地通过过程调用执行的,同时过程调用可以传递参数.与之 ...

  3. oracle数据库触发器(trigger)用法总结

    from:http://blog.csdn.net/zhanzhib/article/details/48729417 触发器的意思就是当我们对数据库对象(一般是表或视图)进行insert.updat ...

  4. 页面加载完成后,触发事件——trigger()

    <button id="btn">点击我</button> <div id="test"></div> 如果页面 ...

  5. cocos2d-x CocoStudio中场景触发器(Trigger)的代码部分和触发器之间的互调

    这节继上一篇触发器扩展,讲一下代码部分的实现. 事件:EventDef.h 只有一个枚举,是对触发器事件的编号 #ifndef__EVENTDEF__ #define__EVENTDEF__ enum ...

  6. 05 Zabbix4.0触发器表达式Trigger expression支持的函数

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 05 Zabbix4.0触发器表达式Trigger expression支持的函数 所有函数返回值 ...

  7. Atitit.设计模式-----触发器模式 trigger  详解

    Atitit.设计模式-----触发器模式 trigger  详解 1. 触发器概念1 1.1. 触发器位置 after|before|instead of1 2. 数据库里面的触发器1 2.1. o ...

  8. zabbix Server 4.0 触发器(Trigger)篇

    zabbix Server 4.0 触发器(Trigger)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.触发器(Trigger)概述 1>.上一篇博客我们介绍了“内 ...

  9. MYSQL双主模式,触发器(trigger)不可见问题

    MYSQL版本信息: Your MySQL connection id is 71851 Server version: 5.7.24-log MySQL Community Server (GPL) ...

随机推荐

  1. 第三章 Git使用入门

    我们都知道Linux和Android是开源的.Linux下的软件很多都不直接以二进制形式的安装包提供,而是直接提供了源代码,为了减少发行包的大小,用户须先下载源代码,在本机上编译并安装,使用make. ...

  2. UVa 1391 Astronauts (2SAT)

    题意:给出一些宇航员他们的年龄,x是他们的平均年龄,其中A任务只能给年龄大于等于x的人,B任务只能给小于x的人,C任务没有限制.再给出m对人,他们不能同任务.现在要你输出一组符合要求的任务安排. 思路 ...

  3. C语言程序设计第8堂作业

    一.本次课主要内容: 本次课通过以下两个知识点来完成: (1)以数字金字塔为例,介绍函数的另一种形式,即不返回结果的函数.不返回结果的函数在定义.调用.参数传递.函数声明上,思路完全与以前相同,只是函 ...

  4. 用jQuery做一个三级菜单,鼠标移动到二级菜单的选项上,然后再迅速离开后,当鼠标再移动到该一级菜单或其他二级菜单选项,三级菜单也会显示。

    用jQuery做一个三级菜单,鼠标移动到二级菜单的选项上,然后再迅速离开后,当鼠标再移动到该一级菜单或其他二级菜单选项,三级菜单也会显示. 原因:在为一个元素绑定hover事件之后,用户把光标移入元素 ...

  5. JXL操作Excel

    jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文 ...

  6. selected 刷新页面后selected选中的值保持不表(thinkphp 从控制器assign 传值到js)

    昨晚解决select 刷新页面以后选择的值保持不变,要想让seleted不变,有两种思路, 1,在提交表单的时候,将所选择的option的属性设为checked . 2.将option的value或者 ...

  7. Teleport Ultra 下载网页修复

    1 三个基本正则替换 tppabs="h[^"]*"/\*tpa=h[^"]*/javascript:if\(confirm\('h[^"]*[Ult ...

  8. 架构设计 - Server设计草稿

    DMServer Framework 主要属性: 四个模块部署在不同服务器,双层部分考虑主备和分布式部署. 架构可依据具体前端需求进行裁剪,灵活配置. gate用于业务框架分布式部署,在业务量可控范围 ...

  9. 如何使用Charles抓包-- 入门篇

    下载地址 注意:首先需要下载java的运行环境支持(一般用burp的人肯定也都有装java环境).装好java环境后,可以直接去百度搜索并下载charles的破解版,下载到破解版之后,里面一般会有注册 ...

  10. Protobuf C#教程 ThriftC#教程大合辑

    android与PC,C#与Java 利用protobuf 进行无障碍通讯[Socket] http://www.cnblogs.com/TerryBlog/archive/2011/04/23/20 ...