一、概述

Mysql 允许通过触发器、存储过程、函数的形式来存储代码。

触发器可以让你在执行 Insert、Update、Delete的时候,执行一些特定的操作。可以在Mysql中指定是在Sql语句执行之前触发还是执行后触发。

 
二、使用触发器需要注意的点

对每一个表的每一个事件,最多只能定义一个触发器(换句话说,不能在AFTER INSERT上定义两个触发器)。

Mysql只支持“基于行的触发”,也就是说,触发器始终是针对一条记录的,而不是针对整个SQL语句的。所以,如果变更的数据集非常大,效率将会很低。

 
 三、使用

1、基本说明

create trigger 【触发器名称】【触发器的执行时间点】【执行的动作点】 on 【表名】for each row [函数 或者动作]

说明:

触发器执行时间:before、after

执行的动作点:insert, update, delete

函数:包在 begin、end 之间

动作:update、insert
 
2、使用

create triggerupdate_product_after
after update onproduct
for each row
beginupdate product set last_update_time = TIMESTAMP-- 代码区域
end;

四、说明

  由于目前大多数的 PHP 框架已经内置了事件触发的函数,所以我们项目中已经很少再用到 Mysql 本身的触发器了。并且我们也完全可以在应用程序代码中去控制,没必要在Mysql中去写事件代码了。
  
  触发器可以掩盖服务器背后的工作,一个简单的Sql语句背后,因为触发器,可能包含了很多看不见的工作。因此触发器的问题也很难排查,如果某个性能问题和触发器相关,将会很难定位和分析。

  触发器可能导致死锁和锁等待。如果触发器失败,那么原来的sql语句也会失败。如果没有意识到这其中是触发器在搞鬼,那么将很难理解服务器抛出的出错误代码是什么意思。

 

原文链接:https://www.haveyb.com/article/60

MySQL - 触发器相关推荐

  1. 利用MySQL触发器实现check和assertion

    MySQL虽然输入check语句不会报错,但是实际上并没有check的功能.但是MySQL 依然可以利用触发器来实现相应功能. 本文将根据两个例子简要阐述MySQL实现check和assertion的 ...

  2. MySQL 触发器应用案例

    网友问题:对于MySQL主从复制结构中,如何让Slave过滤delete操作. 问题分析:该问题对应的是保全所有的记录,包括delete的记录. 对于MySQL本身的过滤规则粒度是精确到表的粒度. 主 ...

  3. mysql latid1_【转】mysql触发器的实战经验(触发器执行失败,sql会回滚吗) | 学步园...

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

  4. mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除

    [数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...

  5. mysql 触发器学习

    mysql 触发器学习 1. 一个简单的例子 1.1. 创建表: create table t(s1 integer); 1.2. 触发器: delimiter | create trigger t_ ...

  6. mysql 触发器 分行_mysql 触发器

    mysql 触发器中有两个insert 语句 第二个inert 要用第一个insert 的结果怎么实现 DELIMITER $$ USE `nightclub`$$ DROP TRIGGER /*!5 ...

  7. mysql触发器 存储过程_mysql触发器和存储过程

    Mysql触发器和存储过程 1 / 9Mysql触发器 1.语法:命名规则 CREATE TRIGGER { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ...

  8. mysql之触发器详解_学习笔记之MySQL触发器详解

    触发器是由事件来触发某个操作,这些事件包括INSERT语句,UPDATE语句和DELETE语句 创建触发器 创建只有一个执行语句的触发器 CREATE TRIGGER 触发器名 BEFORE|AFTE ...

  9. MySql 触发器同步备份数据表记录

    添加记录到新记录表 DELIMITER $$ USE `DB_Test`$$ CREATE/*!50017 DEFINER = 'root'@'%' */TRIGGER `InsertOPM_Alar ...

  10. mysql触发器 while循环_mysql触发器跳出当前循环方法

    mysql触发器跳出当前循环方法 set @num=@UnitLength/3; label: while i set @length=(select SUBSTRING(@unit_sid_fk,1 ...

最新文章

  1. 皮一皮:一直情绪不稳的原因终于找到了!
  2. 一个简易实用的web权限管理模块的应用与实现
  3. sql 定时同步两个数据库
  4. 攻防世界Reverse第二题insanity
  5. 14_面向对象API绘图、图中图 (A Plot inside of Another Plot)、设定绘图范围Setting the Plot Range、对数尺度Logarithmic Scale
  6. Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
  7. Mybatis官方文档——入门
  8. 计算机应用 winxp,2017年职称计算机考试模块WindowsXP试题
  9. c语言20152016真题及答案,2016年计算机二级《C语言》基础练习题及答案(15)
  10. 这也能发Nature??年度奇葩论文大赏
  11. poi html转换成word文档,poi将html转换为word文档
  12. 【滤波器】基于matlab高斯滤波器【含Matlab源码 995期】
  13. 大觅网Springcloud项目实战开发(持续更新中)
  14. 子母钟时钟系统工业应用
  15. JAVA后台生成海报分享图片(简单配置轻松生成)
  16. AD怎么输入坐标_CAD入门基础小知识(二)捕捉栅格绘制直线amp;使用坐标绘图...
  17. 英语四级和计算机二级补证,SOS:国家英语四级证书,计算机二级证书如 – 手机爱问...
  18. unity 游戏存档
  19. 这篇文章告诉你音频降噪手机软件app有哪些?
  20. 北京智和信通网络流量监控分析平台

热门文章

  1. PHP excel文件导入至mysql中!
  2. Delphi 与 DirectX 之 DelphiX(46): TDIB.DoAntiAlias;
  3. 2分钟,我把网站性能优化了3倍!
  4. 基于ABP落地领域驱动设计-01.全景图
  5. 使用.NET开发的数据库小工具 DbTool
  6. .Net Conf 2020 之回顾
  7. 记实现TDengine时序数据库支持 .Net Windows 32位系统踩坑
  8. c#: 协变和逆变深度解析
  9. 开始你的api:NetApiStarter
  10. 使用Ingress来负载分发微服务