触发器(二、BEFORE和AFTER的区别及使用场景)
2018-02-24 10:35
465 查看
DML操作的行级触发器,分为before和after两类。
比如下面在同一张表上分别建了2个触发器
然后用一个insert语句进行触发
结果发现,这2类触发器捕捉的:OLD和:NEW数据实际是一样的。那么什么时候用before,什么时候用after呢?
我们先要知道这2种触发器的特性区别:before触发器(针对insert和update操作)可以修改NEW的值
那么before的应用场景就是:需要修改NEW值的时候,其余场景一律使用after。
举个需要修改:NEW值的情况:某个字段数据库中是NUMBER型的,比如年龄,而送过来的数据是带字符的,比如“17岁”,直接写入就报错了,此时用触发器把数据进行规范化处理后再写入数据库,就可以用before类型的数据库。
比如下面在同一张表上分别建了2个触发器
然后用一个insert语句进行触发
结果发现,这2类触发器捕捉的:OLD和:NEW数据实际是一样的。那么什么时候用before,什么时候用after呢?
我们先要知道这2种触发器的特性区别:before触发器(针对insert和update操作)可以修改NEW的值
那么before的应用场景就是:需要修改NEW值的时候,其余场景一律使用after。
举个需要修改:NEW值的情况:某个字段数据库中是NUMBER型的,比如年龄,而送过来的数据是带字符的,比如“17岁”,直接写入就报错了,此时用触发器把数据进行规范化处理后再写入数据库,就可以用before类型的数据库。
相关文章推荐
- mysql之触发器before和after的区别
- 触发器里 after 和 before的区别
- oracle 触发器before和after数据区别
- 触发器(一、语句级和行级的区别及使用场景)
- mysql触发器Before和After的区别
- 24_触发器中的after和before区别
- 触发器before和after的区别 推荐
- mysql触发器Before和After的区别
- mysql之触发器before和after的区别
- form 触发器的层次Before、Override、after的区别 .
- 触发器里面before和after的区别
- mysql之触发器before和after的区别
- mysql之触发器before和after的区别(2)
- mysql之触发器before和after的区别
- mysql 触发器after与before的区别
- mysql之触发器before和after的区别
- form 触发器的层次Before、Override、after的区别
- AFTER触发器与INSTEAD OF触发器的区别
- oracle中触发器中的after和before
- SQL SERVER 2005:在After Insert触发器中使用INSERT后,影响SCOPE_IDENTITY 问题