Oracle 的触发器和存储过程,功能强大但上手门槛有点高。之前在搞一套业务数据审计系统时,就靠一堆写得比较精细的触发器来搞定日志自动记录,挺省事的。
《Oracle 触发器与存储过程高级编程》这本 PDF,属于那种用起来蛮顺手的资料,例子多,也不啰嗦。是对 PL/SQL 不太熟的朋友,看完能把整个逻辑串起来。
存储过程嘛,用来封装一堆业务逻辑最合适,比如订单、数据同步啥的;触发器适合做那些“别人动了你就得反应”的事,比如字段变化自动打补丁。像BEFORE INSERT
这种触发点,用好了真的能省不少代码。
如果你刚好在搞 Oracle 项目,又觉得数据库层逻辑该精细点,推荐你看看这几个扩展阅读:
数据库触发器与存储过程比较:存储过程 —— 主要讲存储过程的优劣和适用场景
数据库触发器与存储过程比较 —— 触发器和过程怎么配合用,这篇讲得还行
PLSQL 存储过程触发器指南 —— 偏基础,但整理得清晰
存储过程和触发器的示例 —— 有不少可以直接拿来改的代码
Oracle 触发器与存储过程深入解析 —— 更高级一点的玩法,适合进阶
SQL Server 2005 存储过程和触发器 —— 虽然是 SQL Server 的,但思路通用
嗯,建议你在测试环境里多试几组AFTER UPDATE
或INSTEAD OF DELETE
,顺便注意一下触发器别写得太复杂,免得调试抓狂。如果你打算做一点数据审计、权限自动控制,或者逻辑统一管理,那这本 PDF 绝对值得下。