深刻理解触发器执行期间的数据可见性至关重要: 行级 BEFORE 触发器在数据行物理落盘前执行,允许在函数内部直接修改 NEW 行各字段的值(例如自动填充修改时间戳),函数返回修改后的 NEW 即可将变更生效;若返回 NULL 则代表静默放弃本次插入或更新。 行级 AFTER 触发器则在数据已经成功落盘后执行,主要用于跨表联动维护衍生业务状态或记录审计日志。
BEFORE
NEW
AFTER