- 基本上与创建INSERT触发器一样,只不过在DELETE触发器中只能使用OLD来访问被删除的行数据 。
UPDATE触发器
- UPDATE触发器在UPDATE语句执行之前或者之后执行,需要知道一下几点:
- 在BEFORE UPDATE触发器中可以使用NEW和OLD来访问数据,而在AFTER UPDATE触发器中使用NEW来访问数据会报错,只能使用OLD来访问数据;
- 在BEFORE UPDATE触发器中,NEW中的值可以被改变,即允许更改将用于UPDATE的数据;
- OLD中的行数据只能读,不能被更新;
- 一个UPDATE触发器示例如下:
/*创建UPDATE触发器*/DELIMITER // CREATE TRIGGER insertcustomers BEFORE UPDATE ON customers FOR EACH ROWBEGINSELECT NEW.cust_name INTO @beforeupdate; SET NEW.cust_name = 'reset_name'; SELECT OLD.cust_name INTO @afterupdate; END ///*调用UPDATE触发器*/ UPDATE customers SET cust_name = 'happy' WHERE cust_id = 5; SELECT @beforeupdate; SELECT @afterupdate;复制代码
- 输出为@beforeupdate为‘happay’,而@afterupdate为'reset_name' 。有这样一些细节:
- NEW虚拟表中的数据可以更改,如这里采用 SET NEW.cust_name = 'reset_name';,将待更新的cust_name由“happy”变成了“reset_name”;
- 在BEFORE UPDATE触发器中可以使用NEW和OLD来访问数据,而在AFTER UPDATE触发器中使用NEW来访问数据会报错;
- 删除触发器?
- 删除触发器,可以使用 DROP TRIGGER语句,比如DROP TRIGGER insertcustomers; 。触发器不能更新或者覆盖,如果要修改触发器,必须删除这个触发器 。
来源:https://juejin.im/post/5ae55861f265da0ba062ec71
推荐阅读
-
-
告五人最新主打〈在这座城市丢失了你〉 失恋神曲乐迷敲碗大好评!
-
健康|女性到了中年,推荐三种美食,降压减脂,抗衰老,增强体质
-
『科技一秒』骚扰短信回复“TD退订”有没有用,背后有何猫腻?看完总算明白了
-
倒霉!重庆武隆人行道垮塌行人掉入坑中 还好摔得不严重没有生命危险
-
#中新网#专家:婴幼儿等特殊人群密切接触者可居家观察
-
-
「高考」农家女被冒名顶替上大学并非个案——冒名顶替事件大盘点
-
-
【中国地震局网站】震源深度150千米,阿根廷北部发生5.1级地震
-
河北新闻网石家庄新闻|解决一餐一饭难题,石家庄裕华区:聚焦“互联网+养老助餐配餐”服务
-
对于应届毕业生(男生)来说,是应该进入起薪20万的大型国企,还是应该进入投行
-
想知道新房是否甲醛超标?掌握以下几种“信号”,马上知晓
-
吴羽熙■豉香回锅肉,木耳炒肉,鱼香蒸蛋这几道家常菜的做法
-
-
-
华为|BBA靠边站!北汽:中国汽车品牌已具备“弯道超车”的基础和实力
-
-
有人知道这叫啥吗 这条裙子的名字?洛丽塔Lolita
-
八怪娱▲吐槽他管教过于严格,聊天非让她用尊称,沈梦辰晒与爸爸聊天截屏