- 基本上与创建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
推荐阅读
-
『车家号』460版正式上市 配置升级 亮点十足,零跑S01
-
-
-
有时剧评|林妈委屈:我已经尽力,你为何不快乐?,林志颖自曝童年不快乐
-
-
车程天下|摩托车车主表示:卖了宾利,也赔不起我的摩托,宾利撞上了摩托车
-
张雨绮■张雨绮:活得不开心的人,多半是因为喜欢做这件事,希望你没有
-
库兹马|库兹马不配总冠军?8000名网友投票赞成,本人爆粗口回应
-
四川历时9年的高速已竣工, 长117公里, 沿线城市迎来新机遇
-
四川一家五口家中遇害嫌犯坠楼身亡-四川富顺一家五口被灭门
-
中国新闻网|德单日新增确诊达近两月新高 将为返程旅客免费检测
-
-
-
慈禧|慈禧年轻时有多好看?看看她第五世外孙女照片,长得几乎一样
-
小机灵鬼|该来的还是会来,台积电做出选择,华为芯片的出路还有哪些?
-
-
墨羽青春穿搭札记|孙俪养生别具一格!黑丝袜当秋裤穿,当工作人员面撩起外裤太可爱
-
想去英国留学读建筑方面的硕士学位,有啥比较好的学校
-
GIC珠宝鉴定师媛媛|大牌珠宝迷人闪烁,满满高级感,气质女神辛芷蕾高雅珠宝风格多变
-
##入睡难、易醒、早醒?三个助眠食疗方,配合穴位按摩,促进睡眠