- 基本上与创建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
推荐阅读
-
小雨品游|LGD3比2险胜eStar,大乔体系13连胜,晨阳找回“野王”状态
-
「官方」华南降水要超量,官方预报:暴雨大暴雨扎堆,广东福建台湾为重点
-
-
-
世界上鱼最多的湖:有着8亿公斤的鱼却没人敢钓,就在我们中国!
-
-
韩国瑜|柯文哲到云林参访不见韩国瑜:让他休息一阵子再说
-
『听风雨20』获郭台铭力挺,现在公司上市已成亿万富婆!,她21岁进富士康打工
-
【港股挖掘机|中国重汽(03808)建议委任安永会计师事务所为新任核数师】
-
-
-
『手机中毒者』小米+vivo大亮,IDC权威发布Q1数据:OPPO成众人热议焦点
-
人生阅历分享经典入心,读读受用一生,充满阳光的励志句子
-
ZAKER生活|为何大部分司机都选择直接丢弃,而不去报废,汽车寿命已尽
-
美剧去哪看|“戏曲进校园 非遗共传承”——西湖区"庶民大舞台"戏曲书画作品赛邀您参加!
-
甜宠影视|400发炮弹接踵而至,被命中之后却不会沉入海底,德国最强战舰
-
-
LOL嘴强老司机|压力来到了上流和水手这边,LPL夏季赛大变天!翻山涅槃相继离场
-
-
防控|疫情防控发布会 | 上海:现在说拐点为时尚早,千万不能麻