删除触发器
drop TRIGGER 触发器名字; 查找库里面的所有触发器
SELECT * FROM information_schema.`TRIGGERS`;
show triggers
触发器语法

触发器(trigger):监视某种情况,并触发某种操作。

触发器创建语法四要素:.监视地点(table) .监视事件(insert/update/delete) .触发时间(after/before) .触发事件(insert/update/delete)

语法:

create trigger triggerName

after/before insert/update/delete on 表名

for each row   #这句话在mysql是固定的一般都是做行级触发所以这么写 但不是必须的  for each row 就代表每行都相应XXX事件(insert update delete) 理解成每当往表插入(更新 删除)一行的时候就触发

begin

sql语句;

end;
添加用户时的触发器
CREATE TRIGGER add_trigger_us
AFTER INSERT on us_users
FOR EACH ROW
BEGIN INSERT into us_person(`name`,age)VALUES(new.`name`,new.age); end // insert into us_user(`name`,age)values('wang',10000);
注意:新插入的行用new来表示,行中的每一列的值用new.列名来表示。
修改用户时的触发器

CREATE TRIGGER update_trigger_us
AFTER UPDATE on us_person
for EACH ROW
BEGIN UPDATE us_users set age=new.age where `name`=new.`name`; END //UPDATE us_person set age=9999 where `name`='wang';
注意:

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


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


删除时的触发器

CREATE  TRIGGER delete_trigger_us
AFTER DELETE on us_users
FOR EACH ROW BEGIN DELETE from us_person where `name`=old.`name`; end //DELETE from us_users where id=129007; 注意 delete中不存在new ,对于delete而言:原本有一行,后来被删除,想引用被删除的这一行,用old来表示,old.列名可以引用被删除的行的值。
先讲一下after和before的区别:

after是先完成数据的增删改,再触发,触发的语句晚于监视的增删改操作,无法影响前面的增删改动作;也就是说先插入订单记录,再更新商品的数量;

before是先完成触发,再增删改,触发的语句先于监视的增删改,我们就有机会判断,修改即将发生的操作;

例如:操作数据前判断,数据的值,进行修改

CREATE TRIGGER befor_update
BEFORE INSERT on us_users
for each ROW
BEGIN


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


主要来源: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. 纯CSS3实现自定义涂鸦风格的边框

    今天我们要来分享一款基于纯CSS3的自定义边框应用,看上去它像一个Tooltip控件,因为下边框有一个小三角,就像很多地方的引用文本框一样.另外这款CSS3边框是涂鸦风格的,看起来很有个性.用CSS3 ...

  2. send js object to webapi or mvc

    [HttpPost] public HttpResponseMessage AddInfo(UserInfoEntity userInfo) { return Request.CreateRespon ...

  3. Window Server 2012无线网卡和声卡驱动解决方法

    刚开始安装server2012时,驱动一直装不上以为是驱动的问题,后来在网上找了一下才明白是为啥,由于服务器默认不会开启无线LAN功能.和声卡服务,下面简单的方式给大家介绍一下解决方法: 无线网卡解决 ...

  4. Android入门——UI(9)

    SwipRefreshLayout下拉刷新控件 <?xml version="1.0" encoding="utf-8"?> <android ...

  5. Oracle中针对中文进行排序[Z]

    在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: 按中文拼音进行排序:SCHINESE_PINYIN_M 按中文部首进行排序:SCHINESE_RA ...

  6. iOS开发笔记:编译时出现的错误和解决办法

    1."std::ios_base::Init::~Init()", referenced from 出现这样的编译问题,是需要再加进libstdc++.dylib和libstdc+ ...

  7. js——BOM

    BOM:Browser Object Model  浏览器对象模型 open(页面的地址url,打开的方式) :方法  打开一个新的窗口(页面) 如果url为空,折磨人打开一个空白页面 如果打开方式为 ...

  8. java list 去除 重复值

    一: Hastset根据hashcode判断是否重复,数据不会重复 Java代码 /** List order not maintained **/ public static void remove ...

  9. js函数定时器,定时读取系统实时连接数

    function GetDeviceInfo() {     setInterval(function()         {         GetDeviceRealtimeConnect();  ...

  10. Python进阶之闭包

    闭包 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB","S ...