- 基本上与创建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
推荐阅读
-
时尚街拍酱搭|保持了时尚感,为她带来清凉一“夏”,美女清爽气质穿搭
-
调整|中国发布 | 人社部:8个地区调整最低工资标准 为13.12万名
-
别墅被侵占拍剧房主索赔300万-别墅被剧组侵占事件后续
-
亏损|猪肉价格上涨背景下 金新农第四季度扣非净利润亏损被深交所问询
-
-
央视新闻客户端|美国民众怒火再燃 首都华盛顿举行大规模反种族主义游行
-
丽九季|皇帝恨的想杀他,谁知死后两次为他立碑,猛将多次谏言让皇帝难堪
-
体育大学僧 易建联为何却主动解约了?湖人太没诚意了,NBA开出800万合同
-
-
[]老祖宗说:“进家之蛇不可打”,为何家里的蛇不能打,有何道理?
-
青年|国足迎1自证良机!足协若出手申办亚冠,世俱杯或有2支中国球队
-
尴尬死韩国人请吃“大餐”,一桌80多道菜,我却“无从下嘴”
-
娱乐凡凡:当看到生图后, 网友: 这都是谁啊,娱乐圈中的“照骗”太多了,
-
东方网|食品安全和食育需要两手抓 培养孩子健康饮食习惯
-
-
凯文·杜兰特|63+21!正面打爆布朗尼!2022届全美第一高中生简直炸裂
-
-
-
-
【民进党】关键时刻,中国国民党要力挺韩国瑜“过关”