个人感觉没有什么优缺点之分,看场景选择合适的就好。
after—是在记录操纵之后触发,是先完成数据的增删改,再触发,触发的语句晚于监视的增删改操作,无法影响前面的增删改动作,这里没有判断,不知道在性能上是不是有些优势,没有研究过,但是我觉得就算有也是很小的,因为也就new和old。
before—是在记录操纵之前触发,是先完成触发,再增删改,触发的语句先于监视的增删改,我们就有机会判断,修改即将发生的操作,如:我们在触发之前需要判断new值和old值的大小或关系,如果满足要求就触发,不通过就修改再触发;如:表之间定义的有外键,在删除主键时,必须要先删除外键表,这时就有先后之分,这里before相当于设置了断点,我们可以处理删除外键。
有问题欢迎交流讨论,望采纳。