前言:
触发器只是用在特定的场合,一般情况下,我们还是在代码中处理,因为同一个业务逻辑中,如果代码和sql中都有业务逻辑,那么后期维护将很麻烦,所以要根据实际情况来选择,看是否合适。触发器就是写在数据库中的一个脚本sql,当数据库某一个字段发生改变的时候,触发一个或多条sql语句,同时让多张表的数据同步。比如我们有的表中存放了部门名称,那么当我们部门名称发生改变的时候,我们应该调用触发器同时去修改存放了“部门名称”这个冗余字段。
什么是触发器:
简单的说,就是一张表发生了某件事(插入、删除、更新操作),然后自动触发了预先编写好的若干条SQL语句的执行.
特点及作用:
特点:触发事件的操作和触发器里的SQL语句是一个事务操作,具有原子性,要么全部执行,要么都不执行.
作用:1.安全性。可以基于数据库的值使用户具有操作数据库的某种权利。
2.审计。可以跟踪用户对数据库的操作。
3.实现复杂的非标准的数据库相关完整性规则。触发器可以对数据库中相关的表进行连环更新。触发器能够拒绝或回退那些破坏相关完整性的变化,取消试图进行数据更新的事务。当插入一个与其主健不匹配的外部键时,这种触发器会起作用。
4.同步实时地复制表中的数据。
5.自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理。
弊端:
1.增加程序的复杂度,有些业务逻辑在代码中处理,有些业务逻辑用触发器处理,会使后期维护变得困难.
2.如果需要变动整个数据集而数据集数据量又较大时,触发器效果会非常低.
3.对于批量操作并不适合使用触发