zoukankan      html  css  js  c++  java
  • MySQL触发器基本介绍

    基本简介:
      1.触发器可以让你在执行insert,update,delete语句的时候,执行一些特定的操作。并且可以在MySQL中指定是在sql语句执行前触发还是执行后触发。
      2.触发器没有返回值。
      3.触发器可以减少客户端和服务器之间的通信,所以触发器可以简化应用逻辑,还可以提高性能。
      4.mysql触发器的实现非常简单,所以功能也有限。
    注意事项:
      1.对每一个表的每一个事件,最多只能定义一个触发器(即不能再after insert上定义两个触发器);
      2.MySQL只支持“基于行的触发”——也就是说,触发器始终是针对一条记录的,而不是针对整个SQL语句的。如果变更的数据集非常大的话,效率会很低。
    触发器的限制:
      1.触发器可以掩盖服务器背后的工作,一个简单的sql语句背后,因为触发器,可能包含很多看不见的工作。例如触发器可能会更新另一个相关表,那么这个触发器会让这条SQL影响的记录数翻一倍。
      2.触发器的问题很难排查,如果某个性能问题和触发器有关,会很难分析和定位。
      3.触发器可能会导致死锁或者锁等待。如果触发器失败,那么原来的SQL语句也会失败。如果没有意识到这其中是触发器在搞鬼,那么很难理解服务器抛出的错误代码是什么意思。
    说明:
      1.触发器不一定能保证更新的原子性。
      2.Innodb表上的触发器是在同一个事务中完成的,所以它们执行的操作是原子的,原操作和触发器操作会同时成功或者失败。如果在InnoDB表上建触发器去检查数据的一致性,需要特别小心MVCC,稍不小心,就会得到错误的结果。
      3.触发器非常有用,特别是实现一些约束,系统维护任务,以及更新反范式化数据的时候。
      4.还可以试用触发器来记录数据变更日志。
  • 相关阅读:
    JPA注解 @DiscriminatorValue 使用
    随笔
    Win10 启用 FTP
    Java后端模拟前端请求
    ueditor上传路径改成绝对路径
    CSS Web Fonts 网络字体
    调试:'Object reference note set to an instance of an object.'
    类转json、 json转xml的方法,转SortedDictionary转 xml 的方法。
    xml的问题 XmlDocument 与json转换
    websocket
  • 原文地址:https://www.cnblogs.com/wxdblog/p/8797545.html
Copyright © 2011-2022 走看看