- 基本上与创建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
推荐阅读
-
新偶像守护台|伊能静18岁儿子“超辣女装照”外泄!迷你短裙引网友热议
-
-
辽宁发生刑案1死1伤|辽宁建昌发生刑案致1死1伤 17岁犯罪嫌疑人被抓获
-
-
-
【肝脏】贡献一个治“口腔溃疡”的小单方!只图你安康,不图你感谢
-
三角梅@家里有这3种花,大水大肥养,夏天要“暴晒”,晒的狠开的多
-
又一家电巨头"撤离"中国?外企相继离开,难道说中国家电崛起?
-
再不来|世上真有穿越者?考古发现一明代石碑,碑上刻着:扯淡,再不来了
-
卡车之家@卡威K150GT来头可不小,真香警告!10元的“国产猛禽”皮卡
-
健身教练我的快递员,竟是健身教练!上海网友:收完货没脸再吃啦
-
玲珑文史|但“放大招”全靠他们,唐朝骑兵有多牛?人数仅仅占全军的29%
-
卫星|一箭双星!中国成功发射遥感三十二号02组卫星
-
今天去办银行卡,连个驾照都没有,工作人员就给我办了车主卡 。 这个车主卡个普通的车主卡有啥不一样么
-
-
玲玲聊科技|骁龙865加持还镶嵌一颗钻石,最奢侈5G手机?劳力士表盘设计风格
-
科技热门话题:看杭州城西银泰城的直播方法论。,深耕内容是王道
-
吃空饷|中国对外文化集团回应“郑云龙疑似吃空饷”:正在核实
-
「稀饭玩数码」X2屏实力胜过P40系列,KOL投票显示用户看重屏幕大于拍照,Find
-
『髦丫头』私服也太美了,难怪杜海涛爱得不要不要的,有颜还是腿精的沈梦辰