什么是触发器:

触发器是一种特殊的存储过程,它在试图更改触发器所保护的数据时自动执行。

触发器有什么作用:

1.安全性。可以基于数据库的值使用户具有操作数据库的某种权利。
        2.审计。可以跟踪用户对数据库的操作。   
        3.实现复杂的非标准的数据库相关完整性规则。触发器可以对数据库中相关的表进行连环更新。触发器能够拒绝或回退那些破坏相关完整性的变化,取消试图进行数据更新的     事务。当插入一个与其主健不匹配的外部键时,这种触发器会起作用。

4.同步实时地复制表中的数据。

5.自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理。

触发器弊端:

1、如果需要变动整个数据集而数据集数据量又较大时,触
           发器效果会非常低
        2、 对于批量操作并不适合使用触发器 使用触发器实现的业务逻辑在出现问题时很难进行定位,特别是设计到多个触发器的情况 协同开发时,写业务层代码如果不清楚数据库 触发器的细节,容易搞不清到底触发了那些触发器 大量使用触发器会导致代码结构容易被打乱,阅读源码困难

触发器的创建

CREATE TRIGGER trigger_name
        trigger_time
        trigger_event ON tbl_name
        FOR EACH ROW
        trigger_stmt

trigger_name:用来表示触发器的名称,可以自己设计
              trigger_time:标识触发器的触发时机,取值是BEFORE或AFTER
              trigger_event:标识触发事件,取值为INSERT,UPDATE和DELETE
              tbl_name:标识建立触发器的表名,即在哪张表上建立触发器
              trigger_stmt:触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END              包含的多条语句。

由此可见,可以建立6种触发器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。
        不能在一个表中建两个相同类型的触发器,所以一个表最多只能建6个触发器;

查看触发器

SHOW TRIGGERS [FROM schema_name];    
            这里的schema_name 就是指定的库名

删除触发器

DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name

触发器的修改

触发器不能修改,只能删除以后重新创建

触发器的执行顺序

我们建立的数据库一般都是 InnoDB 数据库,其上建立的表是事务性表,也就是事务安全的。这时,若SQL语句或触发器执行失败,MySQL 会回滚事务,有:

①如果 BEFORE 触发器执行失败,SQL 无法正确执行。
            ②SQL 执行失败时,AFTER 型触发器不会触发。
            ③AFTER 类型的触发器执行失败,SQL 会回滚

mysql触发器作用,好处和curl相关推荐

  1. mysql触发器作用及用法

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

  2. mysql 触发器 注意事项_MySQL触发器的利弊-使用MySQL触发器时应该注意的事项

    在MySQL中,触发器可以在你执行INSERT.UPDATE或DELETE的时候,执行一些特定的操作.在创建触发器时,可以指定是在执行SQL语句之前或是之后执行这些操作.通过触发器,你可以实现一些业务 ...

  3. mysql after 不起作用_我的MySQL触发器不起作用,语法简单,不复杂

    我的MySQL触发器不起作用,语法简单,不复杂 我不知道为什么我的触发器不工作,查询工作时手动使用它,但是当我想通过触发器更新它不起作用. 有人可以帮我知道为什么吗? 这是我的触发器: CREATE ...

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

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

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

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

  6. MySQL触发器介绍

    前言: 在学习 MySQL 的过程中,可能你了解过触发器的概念,不清楚各位是否有详细的去学习过触发器,最近看了几篇关于触发器的文档,分享下 MySQL 触发器相关知识. 1.触发器简介 触发器即 tr ...

  7. mysql 触发器_MySQL入门之触发器

    触发器作用 当操作了某张表时,希望同时触发一些动作/行为,可以使用触发器完成!! 例如: 当向员工表插入一条记录时,希望同时往日志表插入数据. 首先创建日志表 -- 日志表 CREATE TABLE ...

  8. Oracle触发器和MySQL触发器之间的区别

    原文链接:http://blog.csdn.net/a19881029/article/details/37820363 --------------------------------------- ...

  9. mysql触发器delimiter_MySQL的触发器创建之注意事项(有关delimiter)

    今天晚上在自己的数据库上做了一个触发器.由于自己之前是使用SQL Server2005学习SQL语句的,所以在这个简单的触发器设计出现了一些自己意想不到的BUG.现在我来简单的说一下: 这里使用到 d ...

最新文章

  1. TCP/UDP协议基本概念
  2. Linux下三个密码生成工具
  3. pytorch 批量筛选
  4. 一个不可描述的python+mongodb爬虫项目
  5. 【大局观很关键】关于找程序的bug
  6. 电脑出现kernelbase.dll错误的两种解决方法
  7. Python中的魔法属性
  8. [笔记][mooc]《程序设计入门—C语言》
  9. Winodows10 安全登录(Administrator账户与Microsoft Account关联
  10. linux tar压缩解压命令的详细解释
  11. 『C#基础』XML文件的读与写
  12. python内置函数map/reduce/filter
  13. VS2010中使用boost正则表达式库
  14. 基于OMAP-L138 DSP+ARM处理器与FPGA实现SDR软件无线电系统
  15. 区块链:POA委员会选举机制
  16. 1bit等于多少字节,换算方法?
  17. Logistic映射
  18. 安卓用ffmeg解码
  19. PDF文件JAVA去水印源码,给pdf文件添加防伪水印logo(附工程源码下载)
  20. qt源码学习---QMetaObject(二)

热门文章

  1. 求解相似度的常见算法
  2. python 学习笔记第一篇---下载网页内所有图片
  3. 从自动驾驶事故中探索有效的性能提升及判责策略
  4. MFC 高速绘图坐标轴内添加纵向基准线的方法
  5. 手把手教你做树莓派魔镜-MagicMirror(七)-接下来
  6. 复杂网络——常见的论文下载和真实数据集下载网站
  7. 织梦php模板安装教程,织梦CMS模板详细图文安装教程
  8. Validform使用说明
  9. JAVA中的进制以及转换
  10. 训练集、验证集、测试集的作用和区别