MySql中的触发器

在项目中好少使用
缺点显而易见:

(1)不够灵活。只能针对update,delete,insert等操作作为触发事件,不符合实际项目开发中根据参数灵活判断进行触发(除非你专门为了一些特定的模块数据去新增专门的update,delete,insert等操作表,但实际开发谁会这样做)。
(2)开销大,在begin … end 语句块中要执行的操作如果复杂,很容易就造成一定数据库压力。
(3)在新增和删除和更新操作频繁的数据库表,如果通过触发器来做业务逻辑的‘后续处理’,很难维护,而且触发器是针对行的加锁,会造成非常大的资源浪费。

优点就是它自带事务属性,要么全部执行成功,要么全部回滚,而且把相关的后续业务逻辑处理都放在一块,容易阅读理解。
例:

CREATE TRIGGER 触发器名 BEFORE 触发事件
ON 表名 FOR EACH ROW
BEGIN
执行业务逻辑SQL语句…
END;

关键字注解:

触发器名:一般用当前的表名加一点注释来命名。
BEFORE:在触发事件发生前先执行的操作。
触发事件:就是上面说的update,delete,insert三种,无法根据参数判断。
ON:在哪张表上建立该触发器。
FOR EACH ROW:对每一行都生效。
BEGIN:开始执行。
这中间可以加自己的业务语句…
比如 insert …
update…
delete …
END:结束。

在网上有看到大佬的写得很好很详细的的一篇:MySQL触发器trigger的使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值