什么是触发器:

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

触发器有什么作用:

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请求_mysql触发器作用,好处和curl相关推荐

  1. mysql查询过程从客户端发送查询请求_MySQL查询过程和高级查询

    最近有个需求,要修改现有存储结构,涉及查询条件和查询效率的考量,看了几篇索引和HBase相关的文章,回忆了相关知识,结合项目需求,说说自己的理解和总结. 总体目录如下,上篇介绍了前3小节,分析了索引为 ...

  2. mysql触发器求属性和_MySQL触发器demo

    MySQL触发器示例 0写在之前: 最近在带浙大本科生的数据库系统的上机课,我手里拿到的教学文档非常的老,本人及不习惯老文档里的sql server的操作,就让大家安装的MySQL,这就有了个问题:M ...

  3. 使用python连接mysql和发送post请求

    一.使用python操作数据库 1.1 引入库 注:使用前需要使用老朋友pip下载pymysql. # 导入pymysql连接数据库 import pymysql 1.2 脚本 # 定义连接数据库的方 ...

  4. php curl发送post请求失败,PHP中的使用curl发送请求(GET请求和POST请求)

    使用CURL发送请求的基本流程 使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤: 1.初始化连接句柄: 2.设置CURL选项: 3.执行并获取结果: 4.释放VURL连接句柄. ...

  5. php 屏蔽curl访问,php curl指定ip,php curl请求忽略本地host文件,php curl请求跳过本地host文件...

    假如我们使用curl请求一个网站,如果这个网站域名在本地host中也存在,curl默认会请求本地,但是我们可以自己设置解析到哪个ip. (1).设置朋友的博客网站主机和ip,请求测试正确返回远程网站内 ...

  6. mysql触发器调用存储过程出错_mysql 触发器中调用存储过程

    想要在MYSQL的触发器中调用存储过程,但是IDE提示: 0A000 Not allowed to return a result set from a trigger 触发器代码如下: DELIMI ...

  7. mysql在触发器中调用存储过程_mysql 触发器中调用存储过程

    想要在MYSQL的触发器中调用存储过程,但是IDE提示: 0A000 Not allowed to return a result set from a trigger 触发器代码如下: DELIMI ...

  8. mysql触发器联立删除_mysql触发器删除实例1

    mysql>create table t1 (a1 int);mysql>create table t2 (a2 int , b2 char(5));其中t2.a2和t1.a1是对应的,a ...

  9. mysql触发器区分新增 修改_MySQL触发器 , 判断更新操作前后数据是否改变

    改动表为user , 改动后将部分信息写入cfq_tab表 1. 新增触发器 create TRIGGER cfq_on_user_add after insert on user for each ...

最新文章

  1. 敏捷开发流程的8个步骤
  2. 《因果学习周刊》第5期:NeurIPS2021 因果发现最新进展
  3. ASP.NET-后台cookie与前台JQUERY解析cookie
  4. 让Vs2013 完美支持EF6.1 Code First with Oracle 2015年12月24日更新
  5. 201103阶段二linux gdb调试与ftp配置
  6. LeetCode 243. 最短单词距离
  7. 任正非:再见,荣耀!从此以后便是对手!
  8. 在CentOS7上实现NFS共享
  9. python 用mysqldb方式操作数据库
  10. 神经网络arm neon加速实现
  11. linux 中文转unicode,Linux下汉字编码的转换
  12. 2017年全国计算机软件水平考试报名时间和报名入口网址
  13. DX11梯台旋转运动
  14. nil pointer evaluating interface {}.replicaCount
  15. (.Net常识)(int),Int32.Parse,Conver.ToInt32三者在什么情况下使用以及其区别。
  16. java实现的聊天程序
  17. contain 不区分大小写
  18. Win10彻底关闭Windows Defender
  19. 如何使用web of science查找SCI WOC 号或者EI来查找检索号
  20. 30个值得推荐的数据可视化工具,赶紧收藏!

热门文章

  1. 渗透测试(内网)学习第一天
  2. 将xls文件转化为xlsx文件
  3. 北京海淀区2011-2012学年度高三年级第一学期期末练习英语
  4. 不建议使用类型 Activity 的方法 managedQuery(Uri, String[], String, String[], String)解决方案
  5. MATLAB计算机视觉与机器认知----Haar矩形遍历演示
  6. JAVA类加载与初始化顺序
  7. java开发常用技术,java项目经验面试
  8. 如何制定数字时代的数据隐私策略
  9. BUCTF[0CTF 2016]piapiapia
  10. 一些韩寒的青春经典语录