基本简介:
  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.还可以试用触发器来记录数据变更日志。

MySQL触发器基本介绍的更多相关文章

  1. MySQL触发器在PHP项目中用来做信息备份、恢复和清空的方法介绍

    案例:通过PHP后台代码可以将员工的信息删除,将删除的员工信息进行恢复(类似于从回收站中恢复员工信息),并且还可以将已经删除的员工进行清空(类似于清空回复站的功能). 思路:要有一张员工表,还要有一张 ...

  2. MySQL触发器如何正确使用

    MySQL触发器如何正确使用 2010-05-18 15:58 佚名 博客园 字号:T | T 我们今天主要向大家介绍的是MySQL触发器进行正确使用,其中包括对MySQL触发器发器的语句创建,触发时 ...

  3. 【转】mysql触发器的实战(触发器执行失败,sql会回滚吗)

    1   引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...

  4. redis作为mysql的缓存服务器(读写分离,通过mysql触发器实现数据同步)

    一.redis简介Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录 ...

  5. mysql触发器的例子--插入前更新数据

    本文介绍下,一个mysql触发器的例子,在数据插入前更新相关内容,有需要的朋友参考下. mysql触发器的例子,如下: view source print? 001 mysql> CREATE  ...

  6. mysql触发器的作用及语法

    触发器是一种特殊的存储过程,它在插入,删除或改动特定表中的数据时触发运行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力. 数据库触发器有下面的作用: 1.安全性.能够基于数据库的值使用户具有 ...

  7. MySQL 触发器结构及三个案例demo

    --你必须拥有相当大的权限才能创建触发器(CREATE TRIGGER),如果你已经是Root用户,那么就足够了.这跟SQL的标准有所不同. CREATE TRIGGER语法 CREATE TRIGG ...

  8. mysql触发器new和old

    下面为您介绍mysql触发器new old的相关知识,供您参考学习,如果您在mysql触发器方面遇到过类似的问题,不妨一看,相信对您会有所帮助. mysql触发器new old: "NEW ...

  9. mysql触发器Before和After的区别

    Before与After区别:before:(insert.update)可以对new进行修改.                    after不能对new进行修改.                 ...

随机推荐

  1. Entity Framework 6 暂停重试执行策略

    EF6引入一个弹性连接的功能,也就是允许重新尝试执行失败的数据库操作.某些复杂的场景中,可能需要启用或停用重试执行的策略,但是EF框架暂时尚未提供直接的设置开关,将来可能会加入这种配置.幸运的是,很容 ...

  2. 201621123012《Java程序设计》第八周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 答:如果为空的时候 ...

  3. windbg 常用命令详解

    = kd> ln 8046e100 (8046e100) nt!KeServiceDescriptorTableShadow | (8046e140) nt!MmSectionExtendRes ...

  4. lua 5.3 英文手册 自己收集整理版

    /* ** state manipulation */ LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud);//创建lua虚拟机 LUA ...

  5. IE8引入JavaScript

    错误写法 : <script type="application/javascript"> 正确写法     <script type="text/ja ...

  6. MySQL 5.7.16 在CentOS 6.5 x64 安装

    1.创建MySQL组和MySQL用户   # groupadd mysql   # useradd -g mysql mysql2.创建MySQL软件安装路径/opt/software   # mkd ...

  7. python使用python-docx导出word

    #!/usr/bin/env python # -*- coding: utf-8 -*- ''' ''' from docx import Document from docx.shared imp ...

  8. Kettle入门及性能优化FAQ

    1.安装 配置Java环境 Java环境配置问题 java_home:D:\Program Files\Java\jdk1.7.0_25(安装jdk路径) classpath:.;%java_home ...

  9. mysql5.7解压版版安装步骤详情

    mysql有安装版和解压版之分: 安装版:以msi结尾的,这种版本优点是安装便捷,全是傻瓜式的下一步:缺点是会不自觉的安装一些我们根本不需要的组件. 解压版:以zip或者其他压缩格式结尾的,这种版本虽 ...

  10. session和cookie的知识总结

    1.HTTP协议 由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接.HTTP服务器则在那个端口监听客户端发送过来的请求.一旦收到请求,服务器(向客户端)发回一个状态 ...