- 基本上与创建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
推荐阅读
-
-
【唐小小】斯嘉丽和Jennie的“渣女感”到底怎样穿出来的?
-
-
日产GT-R|智能手表也能无边界 3D 玻璃设计?我被惊到了
-
驱动之家|阿里王帅:不能接受,自媒体小白天下编造70多篇蒋凡事件黑稿道歉
-
爱心陪护君@有脂肪肝,日常身体会有哪些反应呢?要怎么去治疗?
-
防晒霜是长防晒好还是短防晒好?披肩好还是普通的好?
-
德怀特·霍华德|消失的霍华德!常规赛猛如虎,季后赛成隐形人,沃格尔真不会用他
-
-
篮球|NBA能攻又能防5大球星:乔治仅排第5名,湖人两大球星齐上榜
-
-
安养养生|危险的可不只是肿瘤本身,十个肿瘤患者七个营养不良
-
[黄金]美国23天印钞12万亿,美联储或数次阻止运回黄金后,事情有新变化
-
-
快科技:机械硬盘去矣!鲁大师:SSD普及率已达77.72%
-
-
生日当天请客后,舍友说会送礼物一直没送。而另一个舍友生日还没到就被送了礼物,是不是我宿舍关系不好?
-
为养老金将母亲藏尸冰柜获刑10月|骇人听闻!为养老金将母亲藏尸冰柜获刑10月 背后原因曝光,还有人性吗
-
lgd|TS玩肉或是IG的答案,但对LGD行不通,宁王野核还是问题
-