- 基本上与创建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
推荐阅读
-
-
一只舰长|崩坏3:迷迭香的花语完结,观星吃醋,舰长后宫再起火!
-
产业气象站|TikTok正在经历与Facebook相似的历程——用户群体变化
-
淘淘是我呀|宝妈连喂一个月水后去世,医生检查后怒怼:太无知,宝宝嘴唇干涩
-
北青网综合|19岁视障男孩圆大学梦:使我痛苦者,必将使我强大!
-
-
3DM游戏网|今天育碧前瞻会不尽兴?年内还有第二场直播等你看
-
-
-
-
-
进展|原财长楼继伟透露:中国新冠疫苗进展非常好,本人已注射两剂
-
-
张云雷|德云社张云雷凌晨发文,晒彩排现场照,却被台下孤独的自行车抢镜
-
-
-
两年葡萄苗移栽种植方法 两年葡萄苗移栽种植方法图片
-
生肖:6月中旬,财富大利,3生肖运势上上吉,官运亨通,福禄不缺
-
半尺笔锋|他上学经常迟到,幽默笑话:明明上小学二年级
-