MySQL的SQL语句之触发器的创建和应用

触发器  Trigger

一.触发器

作用:当检测到某种数据表发生数据变化时,自动执行操作,保证数据的完整性,保证数据的一致性。

1.创建一个触发器

如上图所示,查看这个create的帮助信息的时候,这个create trigger就是创建触发器的意思。

如上图所示,这是创建触发器的具体语法,方括号括起来的可有可无。

首先是触发器的名称

触发器执行的时间即

BEFORE:表示在触发事件发生之前执行触发器。
AFTER:表示在触发事件发生之后执行触发器。

触发器执行的触发事件

触发器所具体执行的操作。

触发器执行的时间即

BEFORE:表示在触发事件发生之前执行触发器。
AFTER:表示在触发事件发生之后执行触发器。

触发器执行的触发事件

触发器所具体执行的操作。

如上图所示,就是在MySQL数据库中触发器的语法。

案例1:当检测到人员增加的时候,数量自动增加。

如上图所示,这是在为创建触发器做准备工作。

首先是创建了一个指定字符集为utf8的数据库为testdb

然后在这个数据库中创建了一个user表,其中表的字段设置为三个字段,分别是id字段,name字段,age字段,其中的id字段设置为int类型的数据,主键属性,不空,并且配置了自增的属性。

name字段设置了字段类型的数据0

age字段存入int类型的数据。

随后又创建了number表,这个number表中只有number一个字段,这个字段只存入int类型的数据.

向user表的name,age字段插入数据,user01,age为20

向number表的number字段插入数据1

随后可以使用select * from 来查看表的信息。

如上图所示,这就是把SQL语句的结束符改成双叹号。方便写触发器。

如上图所示,这是在MySQL数据库中修改SQL语句的结束符为双叹号,

创建触发器,设置触发器名称为number_auto_add

并且设置这个触发器的执行是在触发事件之后。

具体的触发事件,即导致触发器执行的事件是向表user插入一条数据的时候,触发器开始执行。

随后的begin和end之间是触发体,即触发器具体要执行的命令。

即当user表中的name和age字段更新过后,就执行update表number中的number字段的数值,使得该字段的数值加一。

并且创建触发器,当user表中的数据每增加一行,此时number表中number字段的数值就加一。

触发器中的for each row的意思是让触发器去检测指定表中每行数据的变化。

如上图所示,这就是for each row的意思,检测指定表中每一行数据的变化。所以当表user中的数据增加两行以后,number表中的number字段的数值也就增加2

如上图所示,这是将MySQL数据库中的SQL语句的命令结束符修改为英文分号;

案例2:检测到人员减少,数量自动减少

如上图所示,这是在创建一个触发器

触发器名称为number_auto_reduce

触发器的执行是在触发事件之后,

触发事件是当删除表user中的内容时,执行触发体

其中begin和end之间的触发体是更新number表  set  number字段的数值减去一。

如上图所示,这是对启动触发器的结果进行检验,

案例3:检测到员工增加时,自动添加工资信息

如上图所示,创建了员工表和薪资表,并为这两张表增添新的数据。

new代表的是worker表中新增加的一行信息,而name代表的是新增加的一行信息中的name用户名字段的数据。

new代表的是新数据,对于一张表来说,新增加的一行数据叫做新数据,使用update修改之后的也叫新数据。都可以使用这个new来标识新数据。

old代表的是旧数据是现有的数据。

如上图所示,当我们在表worker中添加新数据后,工资表自动更新,触发器执行触发体。

案例4:检测员工离职时,自动删除其工资信息。

如上图所示,这又是一个触发器,当员工表中有删除操作发生之后,执行触发体,

删除旧的薪资表中的旧数据。

如上图所示,这是触发器的效果演示

new 新数据【添加,更新】

old 旧数据,表中现有的数据

案例5:当检测到员工信息修改时,工资信息自动修改

如上图所示,创建触发器,当员工表中触发更新操作的时候,更新薪资表中旧的name字段数据为新的name字段数据。

如上图所示,是触发器的执行效果。

2.查看触发器

如上图所示,这是在数据库软件中查看触发器的操作,

3.删除触发器

如上图所示,这是删除触发器的操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2016年ATom-1活动期间航班的每10秒一次的碳 monoxide (CO) 观测数据

目录 简介 摘要 代码 引用 网址推荐 知识星球 机器学习 ATom: Observed and GEOS-5 Simulated CO Concentrations with Tagged Tracers for ATom-1 简介 该数据集包含2016年ATom-1活动期间航班的每10秒一次的碳 monoxide (CO) 观测数据,以及来自戈达德地球观…

Ambari里面添加hive组件

1.创建hive数据库 在添加hive组件之前需要做的事情,先在master这个虚拟机里面创建好hive 先进入虚拟机里面进入mysql 然后输入这个命令看看有没有自己创建的hive数据库 show databases;有的话会显示下面这个样子 没有的同学使用以下命令可以在MySQL中创建hive数…

Java 集合一口气讲完!(上)||o(*°▽°*)o|Ю [有人吗?]

Java 集合遍历 Java集合教程 - Java集合遍历 在Java Collections Framework中,不同类型的集合使用不同类型的数据结构以不同的方式存储它们的元素。 一些集合对它们的元素有排序,有些没有。集合框架提供了遍历集合的以下方法: 使用迭代器使…

Oracle视频基础1.1.3练习

1.1.3 需求: 完整格式查看所有用户进程里的oracle后台进程 查看物理网卡,虚拟网卡的ip地址 ps -ef | grep oracle /sbin/ifconfig要以完整格式查看所有用户进程中的 Oracle 后台进程,并查看物理和虚拟网卡的 IP 地址,可以使用以下…

akshare股票涨跌板与资金流向相关分析

## akshare文档涨跌板 https://akshare.akfamily.xyz/data/stock/stock.html#id374资金流向 https://akshare.akfamily.xyz/data/stock/stock.html#id154涨跌板:https://quote.eastmoney.com/ztb/detail#typeztgc 资金流向:https://data.eastmoney.com/…

【汽车悬挂减震器】制造行业的市场需求与汽车产量呈明显的正相关关系

摘要 根据研究团队调研统计,2023年全球汽车悬挂减震器市场销售额达到了605亿元,预计2030年将达到834亿元,年复合增长率(CAGR)为5.1%(2024-2030)。中国市场在过去几年变化较快,2023年…

11 P4995 跳跳!

题目&#xff1a; 核心&#xff1a; 贪心策略&#xff1a;每次都跳距离自己最远的石头 收获&#xff1a;双指针&#xff08;下标&#xff09;的使用 代码&#xff1a; #include<iostream> using namespace std; # define M 100 #include<algorithm> #include<ma…

热点聚焦:AI在医疗保健领域的深度渗透与变革

内容概要 随着人工智能技术的不断进步&#xff0c;我们正在见证一个充满奇迹的转变&#xff0c;尤其是在医疗保健领域。这种转变不仅仅涉及到提高效率&#xff0c;更在于重新定义我们对疾病诊断和治疗方案的理解。通过智能算法&#xff0c;AI能够在早期识别潜在的健康问题&…

Unity3D URP应用与优化详解

前言 Unity3D是一款广泛应用于游戏开发、影视制作和虚拟现实等领域的强大游戏引擎。在Unity3D中&#xff0c;渲染管线是决定图形质量和性能的关键因素之一。Universal Render Pipeline&#xff08;URP&#xff09;是Unity3D最新推出的渲染管线&#xff0c;为移动和轻量级渲染而…

驱动TFT-1.44寸屏(ST7735)显示器

目录 一、驱动芯片介绍 二、驱动方式 三、完整代码下载 TFT1.44寸屏&#xff0c;搭配ST7735驱动芯片&#xff0c;是一种专为小型电子设备设计的彩色液晶显示解决方案。该屏幕采用薄膜晶体管&#xff08;TFT&#xff09;技术&#xff0c;能够实现高亮度、高对比度和丰富的色彩…

计算机网络八股文个人总结

1.TCP/IP模型和OSI模型的区别 在计算机网络中&#xff0c;TCP/IP 模型和 OSI 模型是两个重要的网络协议模型。它们帮助我们理解计算机通信的工作原理。以下是它们的主要区别&#xff0c;以通俗易懂的方式进行解释&#xff1a; 1. 模型层数 OSI 模型&#xff1a;有 7 层&#…

阐述对鸿蒙生态的认知和了解,并对鸿蒙生态的崛起进行简要分析

一、对鸿蒙生态的认知和了解 1. 系统架构层面 鸿蒙操作系统是一个分布式操作系统&#xff0c;它具有分层架构。内核层包括Linux内核、LiteOS等多种内核&#xff0c;能够适应不同设备的资源和性能需求。例如&#xff0c;在智能穿戴设备这种资源受限的场景下&#xff0c;LiteO…

#渗透测试#SRC漏洞挖掘# 操作系统-windows系统基础02

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…

C++/Opengl编程实践

一、OpenGL编程前提 图形编程是以来显卡的&#xff0c;其程序分为两部分&#xff0c;一部分是用C/java语言编写运行在CPU上的&#xff0c;另一部分是使用着色器语言(GLSL)编写&#xff0c;运行在GPU上的。 1. 需要使用的编程语言及三方库 OpenGL是一个底层无关的图形库&…

使用onnxruntime-web 运行yolov8-nano推理

ONNX&#xff08;Open Neural Network Exchange&#xff09;模型具有以下两个特点促成了我们可以使用onnxruntime-web 直接在web端上运行推理模型&#xff0c;为了让这个推理更直观&#xff0c;我选择了试验下yolov8 识别预览图片&#xff1a; 1. 跨平台兼容性 ONNX 是一种开…

CSS3新增盒子属性(三)

1、CSS3新增盒子属性 1.1 box-sizing 设置盒子的大小。 content-box&#xff1a;设置内容区的大小&#xff1b;border-box&#xff1a;设置盒子的总大小。 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><t…

kubectl常用命令简介

在之前浅谈Kubernetes集群架构 中介绍了kube-apiserver是提供k8s对内或对外的api请求的唯一入口&#xff0c;本文介绍的 kubectl 是官方的CLI命令行工具&#xff0c;用于与 apiserver 进行通信&#xff0c;将用户在命令行输入的命令&#xff0c;组织并转化为 apiserver 能识别的…

Qt 练习做一个登录界面

练习做一个登录界面 效果 UI图 UI代码 <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Dialog</class><widget class"QDialog" name"Dialog"><property name"ge…

ArcGIS软件之“新建中学最适合地址”地图制作

目录 最终效果图(全文图中的颜色类似即可&#xff0c;形状一样为标准&#xff09;第一步、设置现有中学的欧式距离第二步、将计算好的欧式距离 进行重分类第三步、进行核密度分析第四步、进行人口密度的重分类第五步、进行土地使用的要素转栅格第六步、对上一步进行重分类第七步…

一些小细节代码笔记汇总

Python cv2抓取摄像头图片保存到本地 import cv2 import datetime, ossavePath "E:/Image/"if not os.path.exists(savePath):os.makedirs(savePath)cap cv2.VideoCapture(0) capture Falseif not cap.isOpened():print("无法打开摄像头")exit()while…