MySQL触发器详解
MySQL触发器详解
一、介绍
大家应该都听过MySQL
的触发器,它的概念如下
它是一种特殊的一种存储过程,当表数据发生了新增、更新、删除时,便触发这个存储过程。
由此,故而名为触发器。下面一起来看看触发器的使用吧!
二、语法
1)语法格式
1 | -- 删除 |
-
触发事件类型
- insert:有数据新增时触发
- update:有数据被修改时触发
- delete:有数据被删除时触发
-
执行顺序
- before:在触发事件前执行语句
- after:在触发事件后执行语句
在执行语句中,和正常的存储过程差不多,不过触发器多了两个存储过程没有的对象,分别是
NEW
和OLD
;OLD:代表着更新,删除前的数据,可以通过
OLD.字段名
来获取以前的值NEW:代表着新增,更新后的数据,可以通过
NEW.字段名
来获取以后的值其中同上描述的,新增类型的触发器没有
OLD
,删除类型的触发器没有NEW
,而更新触发器两者都有
好的,经过语法的介绍,直接进入实战;
2)示例
首先来一张用户表,需求很简单,如果年龄小于12岁时,将报错不允许操作
1 | CREATE TABLE `sys_user_info` ( |
那么,如何使用触发器完成这上面这个功能需求呢?具体触发器如下
1 | DROP TRIGGER IF EXISTS `user_info_insert`; |
创建完成后,我们查看效果
三、最后
虽然触发器有着自己的局限性,但从某一个角度上来说,它确实是一个好东西。
在我经历的这段时间,它可以完成以下这些实用功能
-
表数据历史的收集,作为一个历史数据保存至其他历史表中。
-
某些数据通过判断后,来确定一些状态字段的值。
-
触发检测,是否达到预警,从而发送告警事件
触发器的功能也可以做到许多东西,关键看自己如何去进行使用,搭配代码,事半功倍!
我是半月,祝你幸福!!!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 半月无霜!
评论
ValineDisqus