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.还可以试用触发器来记录数据变更日志。
  • 相关阅读:
    SQL经典语句和要点整理
    XMLHTTPRequest状态status完整列表
    console和windows子系统
    QT的文件查找
    QT的编译原理
    AES加密算法
    多线程基础
    0210. Course Schedule II (M)
    ip段/数字,如192.168.0.1/24的意思是什么?
    Excel如何让日期单元格随着某个单元格的修改而自动更新
  • 原文地址:https://www.cnblogs.com/wxdblog/p/8797545.html
Copyright © 2011-2022 走看看