DML 触发器的执行逻辑其实蛮有意思的,尤其是你在写一些复杂业务逻辑的时候,会发现它挺省事。INSERT 触发器一旦被触发,插入的数据会先进逻辑表inserted
,你可以从那里面读数据再做判断。嗯,写触发器的时候别忘了检查inserted
里的数据,要不然容易出锅。
触发器其实就是帮你在数据变更的第一时间干点“顺手的活儿”,比如自动记录日志、更新其他表、甚至拒绝非法操作。是配合存储过程和函数用的时候,逻辑更灵活,代码复用也更高,整个流程就顺畅不少。
不过也不是所有场景都推荐上触发器。比如你需要明确控制执行顺序或者逻辑复杂时,还是建议拆出来写在业务逻辑层。要不然一堆嵌套触发器,维护起来真的挺折磨人的。你懂的~
想深入了解的,推荐你去看看几个资源,DML 触发器示例就挺直观,创建 DML 触发器的存储过程与函数也系统,还有像PLSQL 执行顺序解析,你要搞 PL/SQL 那边的也挺有用。
如果你正打算搞数据库的审计、自动同步或者业务校验,DML 触发器是个不错的方向,可以先试着写个AFTER INSERT
触发器试试,感觉一下“钩子”的感觉~