8.MYSQL:触发器的使用[TRIGGER]
触发器是一种特殊的存储过程,它在插入,删除或者修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。
它具有这样的特征:
监视地点:一般就是表名
监视事件: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]相关推荐
- mysql触发器trigger
2018年8月15日,今天由于之前的失误(因为刚来公司不太懂业务导致的)使一个不应该赋值的字段给赋值了,神奇的是居然上生产了,后来就是一系列数据错误,为了及时抑制事态的严重,只能写触发器了,因为改代码 ...
- MySQL修改和删除触发器(DROP TRIGGER)
修改触发器可以通过删除原触发器,再以相同的名称创建新的触发器. 基本语法 与其他 MySQL 数据库对象一样,可以使用 DROP 语句将触发器从数据库中删除. 语法格式如下: DROP TRIGGER ...
- MySQL触发器 trigger学习
触发器:一类特殊的事物.可监视某种数据操作,并触发相关操作(insert/update/delete).表中的某些数据改变,希望同一时候能够引起其他相关数据改变的需求. 作用:变化自己主动完毕某些语句 ...
- 【无标mysql触发器trigger实例详解
文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 目录 什么是触发器 创建 ...
- mySql触发器 trigger详解及实例
@[TOC]1.什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 举个例子,比如你现在有两个表[ ...
- 利用MySQL触发器实现check和assertion
MySQL虽然输入check语句不会报错,但是实际上并没有check的功能.但是MySQL 依然可以利用触发器来实现相应功能. 本文将根据两个例子简要阐述MySQL实现check和assertion的 ...
- MySQL 触发器应用案例
网友问题:对于MySQL主从复制结构中,如何让Slave过滤delete操作. 问题分析:该问题对应的是保全所有的记录,包括delete的记录. 对于MySQL本身的过滤规则粒度是精确到表的粒度. 主 ...
- mysql latid1_【转】mysql触发器的实战经验(触发器执行失败,sql会回滚吗) | 学步园...
1 引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...
- mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除
[数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...
- MySQL 触发器简单实例
from:http://www.qianyunlai.com/blog/470.html ~~语法~~ CREATE TRIGGER <触发器名称> --触发器必须有名字,最多64个字符 ...
最新文章
- 人工智能其实并不客观,算法会加剧刻板印象
- android 语音自动播报,Android 语音播报实现
- LeadTools Android 入门教学——运行第一个Android Demo
- Ubuntu 配置 spark
- 领域驱动设计,让程序员心中有码(四)
- ROS配置分布式通信
- 27 FI配置-财务会计-外币评估-定义评估方范围
- IPython高级用法(一)定制命令别名及存储别名
- TCP 报文段之首部格式
- mysql 主从 只读,mysql主从复制(从库只读)
- python全套教程百度网盘-Python最新全套视频教程百度网盘资源
- z-blogPHP清爽格子纹理主题调整风格
- HBase 性能与可用性在滴滴的探索与实践
- turn.js学习手册
- 画太极(echarts)
- 用VScode绘制函数调用流程图
- Office 2007重新输入序列号激活
- 2021惠普笔记本电脑一键重装win10系统教程分享
- 如何使用React创建视频和动画
- 清华大模型人才遭哄抢!盘点5大学术重镇10大产业玩家
热门文章
- Java数据持久层框架 MyBatis之背景知识一
- Nginx使用webbench进行压力测试
- 重定向dup2的本质
- SCOUNIX第十二讲:使用TCP/IP
- 成功者网上创业的精华经验
- openCV4.2.0 error: (-5:Bad argument) CAP_IMAGES: can’t find starting number (in the name of file)
- Socket send函数和recv函数详解
- TCP三次握手协议和SYN攻击以及DDOS简介
- Windows10下编译NCNN安卓NDK
- python svm算法smo cifar_使用smo算法编写svm对CIFAR-10数据分类