触发器是一种特殊的存储过程它在插入,删除或者修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力

它具有这样的特征:

监视地点:一般就是表名

监视事件:update/delete/insert

触发时间:after/before

触发事件:update/delete/insert

说得直白一点就是,当对一个表进行update/delete/insert等操作的时候,设置触发器就是同步对其他表进行控制操作

触发器不能直接被调用,是由数据库主动执行。

example1:

创建表tab1

DROP TABLE IF EXISTS tab1;CREATE TABLE tab1(tab1_id varchar(11));

创建表tab2


DROP TABLE IF EXISTS tab2;CREATE TABLE tab2(tab2_id varchar(11));

创建触发器:t_afterinsert_on_tab1

作用:增加tab1表记录后自动将记录增加到tab2表中


DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;CREATE TRIGGER t_afterinsert_on_tab1 AFTER INSERT ON tab1FOR EACH ROWBEGINinsert into tab2(tab2_id) values(new.tab1_id);END;

测试一下

INSERT INTO tab1(tab1_id) values('0001');

看看结果

SELECT * FROM tab1;SELECT * FROM tab2;

example2:

创建触发器:t_afterdelete_on_tab1

作用:删除tab1表记录后自动将tab2表中对应的记录删去

DROP TRIGGER IF EXISTS t_afterdelete_on_tab1;CREATE TRIGGER t_afterdelete_on_tab1AFTER DELETE ON tab1FOR EACH ROWBEGINdelete from tab2 where tab2_id=old.tab1_id;END;

测试一下

DELETE FROM tab1 WHERE tab1_id='0001';

看看结果

SELECT * FROM tab1;SELECT * FROM tab2;

总结一下:

1)对于insert,用new表示插入后的行,new.字段名 表示对应行的某一列;

2)对于delete,被删除的行用old表示,old.字段名表示对应行的某一列;

3)对于update,修改前old,修改后new;

8.MYSQL:触发器的使用[TRIGGER]相关推荐

  1. mysql触发器trigger

    2018年8月15日,今天由于之前的失误(因为刚来公司不太懂业务导致的)使一个不应该赋值的字段给赋值了,神奇的是居然上生产了,后来就是一系列数据错误,为了及时抑制事态的严重,只能写触发器了,因为改代码 ...

  2. MySQL修改和删除触发器(DROP TRIGGER)

    修改触发器可以通过删除原触发器,再以相同的名称创建新的触发器. 基本语法 与其他 MySQL 数据库对象一样,可以使用 DROP 语句将触发器从数据库中删除. 语法格式如下: DROP TRIGGER ...

  3. MySQL触发器 trigger学习

    触发器:一类特殊的事物.可监视某种数据操作,并触发相关操作(insert/update/delete).表中的某些数据改变,希望同一时候能够引起其他相关数据改变的需求. 作用:变化自己主动完毕某些语句 ...

  4. 【无标mysql触发器trigger实例详解

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 目录 什么是触发器 创建 ...

  5. mySql触发器 trigger详解及实例

    @[TOC]1.什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 举个例子,比如你现在有两个表[ ...

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

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

  7. MySQL 触发器应用案例

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

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

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

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

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

  10. MySQL 触发器简单实例

    from:http://www.qianyunlai.com/blog/470.html ~~语法~~ CREATE TRIGGER <触发器名称>  --触发器必须有名字,最多64个字符 ...

最新文章

  1. 人工智能其实并不客观,算法会加剧刻板印象
  2. android 语音自动播报,Android 语音播报实现
  3. LeadTools Android 入门教学——运行第一个Android Demo
  4. Ubuntu 配置 spark
  5. 领域驱动设计,让程序员心中有码(四)
  6. ROS配置分布式通信
  7. 27 FI配置-财务会计-外币评估-定义评估方范围
  8. IPython高级用法(一)定制命令别名及存储别名
  9. TCP 报文段之首部格式
  10. mysql 主从 只读,mysql主从复制(从库只读)
  11. python全套教程百度网盘-Python最新全套视频教程百度网盘资源
  12. z-blogPHP清爽格子纹理主题调整风格
  13. HBase 性能与可用性在滴滴的探索与实践
  14. turn.js学习手册
  15. 画太极(echarts)
  16. 用VScode绘制函数调用流程图
  17. Office 2007重新输入序列号激活
  18. 2021惠普笔记本电脑一键重装win10系统教程分享
  19. 如何使用React创建视频和动画
  20. 清华大模型人才遭哄抢!盘点5大学术重镇10大产业玩家

热门文章

  1. Java数据持久层框架 MyBatis之背景知识一
  2. Nginx使用webbench进行压力测试
  3. 重定向dup2的本质
  4. SCOUNIX第十二讲:使用TCP/IP
  5. 成功者网上创业的精华经验
  6. openCV4.2.0 error: (-5:Bad argument) CAP_IMAGES: can’t find starting number (in the name of file)
  7. Socket send函数和recv函数详解
  8. TCP三次握手协议和SYN攻击以及DDOS简介
  9. Windows10下编译NCNN安卓NDK
  10. python svm算法smo cifar_使用smo算法编写svm对CIFAR-10数据分类