- 基本上与创建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
推荐阅读
-
向南飞|寒秋一行雁犹自向南飞 观唐习律合集1-10 老街味道原创律诗
-
『高伟光』如果不是高伟光,李晨将成为《三生三世》宇宙里“最天大的笑话”
-
-
-
-
-
大学之道|桃花旺盛,旧缘断开,红娘牵线,拥抱意中人,恋情开启,未来十天
-
小花说百科|你听说过几件!,近10年轰动全国的刑事案件
-
-
行业互联网|首都文化科技融合发展成果亮相科博会,25家企业展示5G升级文娱生活场景
-
贝贝豆育儿课堂|产后抑郁远比想象严重,宝妈请爱自己,“如果重来我再也不生了”
-
董小姐的教育观|上重点高中不是难事,致2020届中考生:准初三生暑假做好这4件事
-
-
明眼千里@20岁妻子或将被判刑,英国男子发现女儿的生父竟是13岁男孩
-
-
-
-
万万没想到,50岁“丁克”了一辈子的周迅,如今成人生赢家
-
-
豆瓣|《亲爱的自己》大结局,李思雨张芝芝成功变成女富婆,王子茹惨败