- 基本上与创建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
推荐阅读
-
中国|TikTok被指违反儿童隐私保护协议 美国司法部展开调查
-
-
-
大众网|捐赠作品1000幅!段玉鹏艺术馆济宁古南池畔落成开馆
-
表演|原创参演《当家主母》,又和赵薇同框,黄奕真的能够东山再起吗?
-
美容|建议女生:在涂精华液时,记住“3点”,让你的肌肤越养越白嫩
-
穿搭|这哪看出来是52岁?伊能静一袭黑色配贝雷帽,说30多岁我都信
-
-
-
#鹰派无敌#埃尔多安幻梦破灭,美国把土耳其踢出F35供应链
-
折叠屏手机翻盖折叠屏真香,华为Mate V渲染图曝光,颜值仅次Motorola Razr
-
利物浦|利物浦2-0擒10人切尔西!英超2连胜开局 马内2球超C罗
-
今日最奇葩|反应迅速的再找话题,社交能力看呆一旁范丞丞,郭麒麟拿盘子失败
-
-
防水纸尿裤使用注意事项 婴儿游泳防水纸尿裤可以用几次?
-
车质网▲补贴后售15.30万元,轩逸·纯电新车型上市
-
装修材料 家庭墙面装饰板优点有哪些 家庭墙面装饰板品牌有哪些
-
李子柒自创品牌美食,除了朵朵香菇酱,另外这两种也很好吃!
-
独家甄选:荣耀推出新款5G手机,只售2399元,让想用5G手机的中国人买得起
-