触发器(二、BEFORE和AFTER的区别及使用场景)

时间:2024-04-07 11:08:16

DML操作的行级触发器,分为before和after两类。

比如下面在同一张表上分别建了2个触发器

触发器(二、BEFORE和AFTER的区别及使用场景)

然后用一个insert语句进行触发

触发器(二、BEFORE和AFTER的区别及使用场景)

结果发现,这2类触发器捕捉的:OLD和:NEW数据实际是一样的。那么什么时候用before,什么时候用after呢?

我们先要知道这2种触发器的特性区别:before触发器(针对insert和update操作)可以修改NEW的值

那么before的应用场景就是:需要修改NEW值的时候,其余场景一律使用after。

举个需要修改:NEW值的情况:某个字段数据库中是NUMBER型的,比如年龄,而送过来的数据是带字符的,比如“17岁”,直接写入就报错了,此时用触发器把数据进行规范化处理后再写入数据库,就可以用before类型的数据库。