1. 删除触发器
  2. drop TRIGGER 触发器名字;
  3.  
  4. 查找库里面的所有触发器
  5. SELECT * FROM information_schema.`TRIGGERS`;
    show triggers
  1. 触发器语法
  2.  
  3. 触发器(trigger):监视某种情况,并触发某种操作。
  4.  
  5. 触发器创建语法四要素:.监视地点(table) .监视事件(insert/update/delete) .触发时间(after/before) .触发事件(insert/update/delete)
  6.  
  7. 语法:
  8.  
  9. create trigger triggerName
  10.  
  11. after/before insert/update/delete on 表名
  12.  
  13. for each row #这句话在mysql是固定的一般都是做行级触发所以这么写 但不是必须的  for each row 就代表每行都相应XXX事件(insert update delete) 理解成每当往表插入(更新 删除)一行的时候就触发
  14.  
  15. begin
  16.  
  17. sql语句;
  18.  
  19. end;
  1. 添加用户时的触发器
  2. CREATE TRIGGER add_trigger_us
  3. AFTER INSERT on us_users
  4. FOR EACH ROW
  5. BEGIN
  6.  
  7. INSERT into us_person(`name`,age)VALUES(new.`name`,new.age);
  8.  
  9. end
  10.  
  11. // insert into us_user(`name`,age)values('wang',10000);
    注意:新插入的行用new来表示,行中的每一列的值用new.列名来表示。
  1. 修改用户时的触发器
  2.  
  3. CREATE TRIGGER update_trigger_us
  4. AFTER UPDATE on us_person
  5. for EACH ROW
  6. BEGIN
  7.  
  8. UPDATE us_users set age=new.age where `name`=new.`name`;
  9.  
  10. END
  11.  
  12. //UPDATE us_person set age=9999 where `name`='wang';
    注意:

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

  1.  

修改的后的数据,用new来表示,new.列名引用被修改之后行中的值。

  1.  
  1. 删除时的触发器
  2.  
  3. CREATE TRIGGER delete_trigger_us
  4. AFTER DELETE on us_users
  5. FOR EACH ROW
  6.  
  7. BEGIN
  8.  
  9. DELETE from us_person where `name`=old.`name`;
  10.  
  11. end
  12.  
  13. //DELETE from us_users where id=129007;
  14.  
  15. 注意 delete中不存在new ,对于delete而言:原本有一行,后来被删除,想引用被删除的这一行,用old来表示,old.列名可以引用被删除的行的值。
  1. 先讲一下afterbefore的区别:
  2.  
  3. after是先完成数据的增删改,再触发,触发的语句晚于监视的增删改操作,无法影响前面的增删改动作;也就是说先插入订单记录,再更新商品的数量;
  4.  
  5. before是先完成触发,再增删改,触发的语句先于监视的增删改,我们就有机会判断,修改即将发生的操作;
  6.  
  7. 例如:操作数据前判断,数据的值,进行修改

CREATE TRIGGER befor_update
BEFORE INSERT on us_users
for each ROW
BEGIN

  1.  

IF new.age>1000 THEN
set new.age=2;
end if;
end

  1.  
  2. 主要来源:http://www.cnblogs.com/zzwlovegfj/archive/2012/07/05/2578574.html

mysql的触发器的更多相关文章

  1. mysql之触发器trigger 详解

    为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 mysql之触发器trigger 触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table)  ...

  2. 初试mysql存储过程&触发器

    玩mysql以来,一直没有试过实现存储过程,因为存储过程的语法看起来有些笨重.所以一直采用手动批量运行查询,而且要手动改日期之类的参数. 今天尝试着学了一会,发现其实是很简单的.语法上确实格式复杂些, ...

  3. MySql之触发器的使用

    一:触发器的使用场景 当数据库的记录发生变化时,自动触发某些操作. MySQL的触发器响应三种操作,六种场合: 三种操作:DELETE.INSERT.UPDATE. 六种场合:三种操作的BEFORE. ...

  4. MYSQL:基础——触发器

    MYSQL基础——触发器 引入触发器 什么是触发器 如果你想要某条语句(或某些语句)在事件发生时自动执行.比如: 每当订购一个产品时,都从库存数量中减去订购的数量:无论何时删除一行,都在某个存档表中保 ...

  5. MySQL创建触发器的时候报1419错误( 1419 - You do not have the SUPER privilege and binary logging is enabled )

    mysql创建触发器的时候报错: 解决方法:第一步,用root用户登录:mysql -u root -p第二步,设置参数log_bin_trust_function_creators为1:set gl ...

  6. mysql 视图 触发器 存储过程 函数事务 索引

    mysql 视图 触发器 存储过程 函数事务 索引 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当 ...

  7. mysql之触发器trigger

    触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/befo ...

  8. mysql优化--触发器和auto_increment

    1.触发器: 触发器的好处:做数据回收站或者做数据关联删除 触发器的坏处:给数据库增加压力,增删改变慢,不利与mysql移到其他数据库会出问题. 触发器建立:只能增删改,查不能建立. 例子1:创建一个 ...

  9. mysql之触发器入门

    触发器语法: CREATE TRIGGER <触发器名称>  --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.{ BEFORE |  ...

  10. MySql之触发器【过度变量 new old】

    trigger是由事件触发某个操作.这些事件包括insert语句.update语句和delete语句.当数据库执行这些事件时,就会激活触发器执行相应的操作. [1]只有一个执行语句 create tr ...

随机推荐

  1. JAVA装饰器模式

    Java程序员们应该对java.io对不会陌生,因为java.io包采用了装饰器模式. 一.定义: Decorator装饰器,顾名思义,就是动态地给一个对象添加一些额外的职责,就好比为房子进行装修一样 ...

  2. table+js实现网站左侧列表下拉隐藏

    <script language="javascript">                    function showHide(obj){            ...

  3. 关于用exec来执行存储过程中,参数带有引号的解决方法

    比如:exec 存储过程名 要带有引号的参数 这样写的时候是传不进引号的,可以选定一种字符来表示引号,在存储过程中再进行转换: @test=replace(replace(@test,char(39) ...

  4. 理解JS闭包

    从事web开发工作,尤其主要是做服务器端开发的,难免会对客户端语言JavaScript一些概念有些似懂非懂的,甚至仅停留在实现功能的层面上,接下来的文章,是记录我对JavaScript的一些概念的理解 ...

  5. 如何启用Oracle EBS Form监控【Z】

    前言: 有时候,因某些需要,必须知道Oracle的Form被使用的情况,以方面我们做出决策: 例如,如果某个Form被使用的次数非常多,那么,这个Form的相关SQL代码就应该优先处理,以减少服务器负 ...

  6. 一个证书多次使用-导出p12文件

    在苹果开发者网站申请的证书,是授权mac设备的开发或者发布的证书,这意味着一个设备对应一个证书,但是99美元账号只允许生成3个发布证书,两个开发证书,这满足不了多mac设备的使用,使用p12文件可以解 ...

  7. 《转载》深入理解 CSS 中的行高与基线

    这篇文章总结的很好,故转载收藏. 1.基本概念 1.  基线.底线.顶线.中线 注意:基线(base line)并不是汉字文字的下端沿,而是英文字母“x”的下端沿. 2. 内容区 内容区是指底线和顶线 ...

  8. 解读机器学习基础概念:VC维的来龙去脉 | 数盟

    http://dataunion.org/14581.html

  9. C++ 数据结构学习二(单链表)

    模板类 //LinkList.h 单链表#ifndef LINK_LIST_HXX#define LINK_LIST_HXX#include <iostream>using namespa ...

  10. jquery解决onmouseover和onmouseout合用的bug问题

    经常会遇到鼠标放到一个元素上显示另外一个元素,这两个元素是父子关系,比如在A上绑定mouseover和mouseout事件来显示或隐藏B元素,A元素包含B元素,当鼠标移到B元素后浏览器认为你移开了A, ...