MYSQL触发器

1.触发器定义

触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。
触发程序的优点如下:
• 触发程序的执行是自动的,当对触发程序相关表的数据做出相应的修改后立即执行。
• 触发程序可以通过数据库中相关的表层叠修改另外的表。
• 触发程序可以实施比 FOREIGN KEY 约束、CHECK 约束更为复杂的检查和操作。

触发器是一种与表操作( INSERT、UPDATE、DELETE)有关的数据库对象。触发器定义了一系列操作,这一系列操作称为触发程序。当触发器所在表上出现INSERT、UPDATE以及DETETE操作时,将激活触发器,即表的操作事件触发表上的触发程序的执行。

2.触发器四要素

(1).监视地点(table)
触发地点一般指监视的表,
(2).监视事件(insert/update/delete)
监视事件对监视的表是那种操作触发
(3).触发时间(after/before)
触发时间是监视表动作前还是后
(4).触发事件(insert/update/delete)
对另一张表进行操作

3.触发器分类

MySQL触发器有三种 INSERT触发器、UPDATE触发器、DELETE触发器

(1).INSERT触发器
在 INSERT 触发器代码内,可引用一个名为 NEW(不区分大小写)的虚拟表来访问被插入的行。
• 在 BEFORE INSERT 触发器中,NEW 中的值也可以被更新,即允许更改被插入的值(只要具有对应的操 作权限)。
• 对于 AUTO_INCREMENT 列,NEW 在 INSERT 执行之前包含的值是 0,在 INSERT 执行之后将包含新 的自动生成值。
(2).UPDATE触发器
• 在 UPDATE 触发器代码内,可引用一个名为 NEW(不区分大小写)的虚拟表来访问更新的值。
• 在 UPDATE 触发器代码内,可引用一个名为 OLD(不区分大小写)的虚拟表来访问 UPDATE 语句执行前的 值。
• 在 BEFORE UPDATE 触发器中,NEW 中的值可能也被更新,即允许更改将要用于 UPDATE 语句中的值 (只要具有对应的操作权限)。
• OLD 中的值全部是只读的,不能被更新。
注意:当触发器设计对触发表自身的更新操作时,只能使用 BEFORE 类型的触发器,AFTER 类型的触发器将 不被允许。
(3).DELETE触发器
• 在 DELETE 触发器代码内,可以引用一个名为 OLD(不区分大小写)的虚拟表来访问被删除的行。
• OLD 中的值全部是只读的,不能被更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值