数据库触发器(Trigger)的一点使用心得

 更新时间:2009年07月27日 18:18:29   作者:  
最近了解了一下数据库触发器,并做一点实际的应用,在翻看其概念的时候,还是本着从理解的角度来学习的,但是,到了实际的应用场景中,还是有一些特别注意的地方的,下面是自己在应用中的几点体会
(1) 针对较为复杂的跨多表的数据业务级别的约束,可以通过触发器来替代大量的后台判断代码,效率较高且便捷。
(2) 如果想通过触发器辅助业务逻辑,不能单着眼于数据库内容的变化来设计触发器,还必须紧密结合业务模型中涉及该表的所有地方,因为很有可能因为不一致的逻辑处理方式导致我们设计的触发器遗漏下一些分支条件!其实,在这种情况下,如果能有更好的方法,不建议使用触发器,因为牵扯到过多的业务逻辑内容的话,会使触发器的设计和编写困难重重,不能充分发挥其便捷高效的优点。
(3) 鉴于触发器在实际运行的时候,是被包含在一个数据库事务中的,所以我们在编写了完整的处理分支后,就可以完全信赖它的执行,大量并发情况下,数据库会自动处理好对各事务的操作,不用担心触发器的性能和正确性。
(4) 在同一个事务中的不同执行语句,如果后面语句中的操作触发了相应表的触发器,则在触发器内可以查看前面语句执行后的结果列表的内容,所以,在使用触发器的时候,对事物中多条语句的操作的顺序是要考虑清楚的。
(5) 如果我们使用触发器+数据表的形式来对数据进行一些统计性的操作的时候,我们在保证触发器逻辑完整性的前提下,最好能通过数据库任务的方式来定时进行检查,因为触发器对于一个用程序的操作都能有相应的处理,但对于人为的数据库操作有时却是无能为力的,所以,为了避免这样的错误发生,有必要对统计结果做定期的校验,保证数据的正确性,当然,如果可以,尽量不要使用这种方法,但在一些个性化项目中,因为一些特别的原因,可能会有所应用。
(6) 我们可以间接地通过更新数据表的方式来调试触发器,当然,也可以通过在触发器中添加一些“特殊的日志性质的更新语句”来辅助我们的调试。

最后再说一句,所谓“好钢用在刀刃上”,触发器在一些特殊的应用情况下,会极大地简化我们的开发工作量,并提升处理效率,但是它并使万能的,也不是适用于各种应用环境,所以我们使用的时候,一定要慎重,更要权衡利弊。

相关文章

  • 在ACCESS和SQL Server下Like 日期类型查询区别

    在ACCESS和SQL Server下Like 日期类型查询区别

    Like 和日期类型在ACCESS和SQL Server的区别,需要的朋友可以参考下。
    2009-10-10
  • SQL 查询语句积累

    SQL 查询语句积累

    SQL 查询语句积累...
    2006-12-12
  • Dbeaver做数据迁移的详细过程记录

    Dbeaver做数据迁移的详细过程记录

    DBeaver是一款跨平台的通用数据库开源管理工具,支持 MySQL,PostgreSQL,Oracle,DB2,MSSQL,Sybase,Mimer,HSQLDB,Derby以及其他兼容JDBC的数据库,下面这篇文章主要给大家介绍了关于Dbeaver做数据迁移的详细过程,需要的朋友可以参考下
    2023-05-05
  • 数据库服务器构建和部署检查列表详解

    数据库服务器构建和部署检查列表详解

    这篇文章主要介绍了数据库服务器构建和部署检查列表的相关内容,小编觉得挺不错的,这里分享给大家,供各位参考。
    2017-10-10
  • clickhouse系统表日志清理方式详解

    clickhouse系统表日志清理方式详解

    这篇文章主要为大家介绍了clickhouse系统表日志清理方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 记一次SQL优化的实战记录

    记一次SQL优化的实战记录

    作为开发人员,我们免不了与sql打交道,有些sql可能在业务的最开始,执行是毫无问题的,但是随着业务量的提升以及业务复杂度的加 深,可能之前的sql就会需要优化了,下面这篇文章主要给大家介绍了关于一次SQL优化的实战记录,需要的朋友可以参考下
    2022-07-07
  • 数据库同步优化技巧分享

    数据库同步优化技巧分享

    这篇文章主要介绍了数据库同步优化技巧分享,需要的朋友可以参考下
    2015-10-10
  • 使用navicat导入sql文件的方法步骤

    使用navicat导入sql文件的方法步骤

    这篇文章主要介绍了使用navicat导入sql文件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 三表左连接查询的sql语句写法

    三表左连接查询的sql语句写法

    left join三表左连接sql查询语句
    2008-09-09
  • 以前架征途时的合区的SQL语句代码备份

    以前架征途时的合区的SQL语句代码备份

    本来以为资料都是丢了的,今天整理移动硬盘时发现found.000这个目录超大,进去一看,我的妈呀,资料都在这里了,这下可把我乐坏了,我赶紧把一些有用的都发上来先
    2008-08-08

最新评论