- 基本上与创建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
推荐阅读
-
趣头条|跌至7.79万,30天卖28517辆,别克英朗迎翻身
-
-
冬月长街话体育|梅西比C罗强一倍多,梅西真比C罗强?数据研究终结史诗级争议
-
爱上历史 成功的几率有多大,如果华佗真的给曹操开颅
-
-
钱白花了,国安在中场后腰位置上的漏洞被完全暴露,可谓完全的投资失败
-
-
谈养生的问题|女性泡什么水喝保养卵巢?保护卵巢很重要!来学一下吧!
-
图赫尔|巴黎主帅明确想买皇马猎物:他将是一笔好签约
-
娜娅·里维拉|携子游湖却丢下儿子莫名失踪,美剧女演员娜娅的尸体在加州被找到
-
-
-
「蚬肉青椒」紫薯,紫薯是和红薯一样的薯类食材,属于高纤维食材,也就是粗粮
-
文汇报移动端|女法医高温天出现场:全副武装,保护物证
-
兵王故事|俄海军导弹开路,直接杀进日本海猛烈开火,安倍终于惹恼了普京
-
#美妆护肤科普#清水洗脸能洗干净吗?你是怎么洗脸的?
-
商业经济观察黄鼠狼给鸡拜年!高通获准供应“高端芯片”,网友:看不起谁?
-
-
上海市绿化和市容管理局网站|金山区绿化市容局处置四起非法捕猎、养殖野生动物案件
-
食物中毒|广西这片海上飘来大量榴莲,上百人食用!结果……