- 基本上与创建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
推荐阅读
-
爱集微APP|其他业务占比较小,紫光国微:目前以芯片设计业务为主
-
-
-
周冬雨@唐艺昕产女张若昀发红包,公布怀孕生产好消息比唐嫣罗晋大方坦诚
-
北京如果取消小客车摇号政策全面放开购买,交通会变怎么样
-
「育儿小手册」体验服蒙犽再次削弱,急速战靴攻速降低,王者荣耀3.21更新
-
-
环球网|喀什:排除疏附县疫情与7月份乌鲁木齐疫情病毒的相关性
-
摄诗文史版|建都时间最长的是哪个?,中国历史上的七大古都
-
-
-
美好,一直在身边【品牌社区】科技带来的便捷你知道有多少吗?
-
|美国刚刚表示:还想再借12.05万亿,中国大抛2500亿美债后
-
清朝|从这件事情就能看出,乾隆与雍正之间有多大区别!
-
电脑报|CHERRY ∞ 2020线上发布会即将召开,直播抽奖
-
就是爱搞机|主打性价比的荣耀play系列发布新机!会是同级别中最便宜的一款?
-
-
鹰眼防务观察|土耳其运用更加出色,利比亚上空的无人机:“翼龙”常被己方击落
-
-