MySQL触发器-使用示例

一、什么是触发器

触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的SQL语句

举个例子:有两个表,员工表和部门表。当一个员工入职时:

  • 员工表需要insert一行员工详细信息(id,employee_name,phone_num,email,dept_id)
  • 部门表需要insert一行员工大致信息(id,employee_name)

如果没有触发器,则需在service添加同步逻辑,或同时调用多条SQL执行同步insert

有触发器后,只需在员工表插入数据,部门表会自动插入

二、创建触发器

  • 创建语法
create trigger 触发器名
触发时间 触发语句 on 触发表名
for each row
begin
    触发内容(SQL语句);
end;

名词解释:

  • 触发器名:给触发器取的名字

  • 触发时间:

before:数据修改前触发
after:数据修改后触发

  • 触发语句:

insert:insert后触发
update:update后触发
delete:delete后触发

触发器类型NEW 和 OLD
INSERTNEW 表示已经新增的数据
UPDATEOLD 表示修改前的数据 , NEW 表示已经修改的数据
DELETEOLD 表示已经删除的数据
  • 触发表名:触发表执行增/删/改SQL后,执行触发器

  • 触发内容:执行触发器后要执行的SQL语句

三、查看/删除触发器

  • 查看所有触发器
show triggers;
  • 查看触发器创建语句
show create trigger 触发器名;
  • 删除触发器
drop trigger + 触发器名;

四、举例

  • 创建员工表

在这里插入图片描述

  • 创建部门表

在这里插入图片描述

  • 创建触发器
create trigger trigger_employeeToDept
    after insert on employee
    for each row
begin
    insert into dept (id, employee_name) VALUES (NEW.dept_id,NEW.employee_name);
end;

解释:

当employee表执行insert语句后,dept表进行insert操作
id和employee_name字段值为employee表插入的数据

  • 插入测试数据
insert into employee (id, employee_name, phone_num, email, dept_id) 
VALUES ('1','odinpeng','123456','123@gmail.com','1');
  • 结果

employee表:
在这里插入图片描述

dept表:
在这里插入图片描述


update、delete与insert类似,替换关键字即可

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

supermap-iserver激活教程(linux)

本篇只介绍linux临时许可激活教程,windows的原理一摸一样不做赘述。 1.下载许可中心(web版) SuperMap技术资源中心|为您提供全面的在线技术服务 2.解压 supermap-bslicense-server-3.0.24-linux-x64.tar.gz tar -zxvf supermap-bslicense…

WebGL技术框架及功能

WebGL(Web Graphics Library)是一种用于在Web浏览器中渲染交互式3D和2D图形的JavaScript API。它允许在不需要插件的情况下,在支持WebGL的浏览器中直接运行高性能的图形渲染。WebGL没有一个固定的技术框架,而是基于JavaScript API…

最佳实践| 一文读懂《MongoDB 使用规范及最佳实践》原理

最佳实践| 一文读懂《MongoDB 使用规范及最佳实践》原理 一、MongoDB 使用规范与限制 MongoDB 灵活文档的优势 灵活库/集合命名及字段增减同一字段可存储不同类型数据Json 文档可多层次嵌套文档对于开发而言最自然的表达 MongoDB 灵活文档的烦恼 数据库集合字段名千奇百怪…

基于YOLOv8的道路缺陷检测:自研模块 MSAM 注意力 PK CBAM注意力,实现暴力涨点

💡💡💡本文自研创新改进:MSAM(CBAM升级版):通道注意力具备多尺度性能,多分支深度卷积更好的提取多尺度特征,最后高效结合空间注意力 1)作为注意力MSAM使用&am…

【前端首屏加载速度优化(一) :nginx 开启gzip压缩】

开启gzip压缩前后对比: nginx.conf具体配置: server {# 启动后的端口listen 8882;# 开启gzip压缩gzip on;gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types text/plain application/x-javascript…

多种卫星遥感数据反演黑龙江省蒸腾与蒸散(ET)数据服务

引言 多种卫星遥感数据反演黑龙江省地表蒸腾与蒸散率(ET)产品是地理遥感生态网平台推出的生态环境类数据产品之一,产品包括1981-2023年数据,,数据类型为8bit整型。该产品经过数据搜集—模型模拟—质量检查—地表蒸腾与…

Windows下搭建Tomcat HTTP服务,发布公网远程访问

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器,不仅名字很有趣&#xff0…

onnx快速部署YOLO模型

1、准备和环境 首先需要将yolov5模型训练好的最佳权重文件转化为.onnx格式以备使用。不会的小伙伴可以参考yolov5的官方文档,使用yolov5官方的 export.py 脚本进行转换,或者参考一些博客链接,这里不做详细解析。  基本环境配置,相…

初识Java 18-4 泛型

目录 泛型存在的问题 在泛型中使用基本类型 实现参数化接口 类型转换和警告 无法实现的重载 基类会劫持接口 自限定类型 奇异递归类型 自限定 自限定提供的参数协变性 本笔记参考自: 《On Java 中文版》 泛型存在的问题 接下来讨论的,是在泛型…

MySQL使用函数和存储过程实现:向数据表快速插入大量测试数据

实现过程 1.创建表 CREATE TABLE user_info (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(20) DEFAULT NULL,age INT(3) DEFAULT NULL,pwd VARCHAR(20) DEFAULT NULL,phone_number VARCHAR(11) DEFAULT NULL,email VARCHAR(255) DEFAULT NULL,address VARCHAR(255) DEF…

wsl 命令详解

WSL 简介 WSL全称 Windows Subsystem for Linux ,是微软开发的一个运行在Windows上的兼容层,它允许开发人员和用户直接在Windows上运行原生Linux二进制文件,而无需配置或修改系统。 WSL命令是用于管理和操作WSL子系统的工具。 常用WSL命令…

UE5学习(游戏存档,两种适应性的射线检测,时间膨胀)

游戏存档 0.建立游戏存档类 1.建立存档 命名要用规律,读档时根据命名调用 2.读取存档 这里是用存档时间(秒)验证是否有存档成功。 两种鼠标位置射线检测方法 两种适用性未使用大量项目验证,为个人观点 1.适用于游戏中 2.适用于…

Update this scope and remove the “systemPath“

问题 解析: 在特定的指定路径上查找系统相关性。这大大降低了可移植性,因为如果您将工件部署在一个与您的环境不同的环境中,代码将无法工作。 解决: 1 使用官方maven仓库的第三方jar包 2 如果官方仓库不存在jar包,…

AcWing 2816. 判断子序列

文章目录 AcWing 2816. 判断子序列我的思路CODE 欣赏大神代码给点思考 AcWing 2816. 判断子序列 题目链接:https://www.acwing.com/activity/content/problem/content/2981/ 我的思路 直接硬套模版,把两个指针两层循环写上如果匹配,记录数组…

WebGL的项目类型

WebGL 是一种用于在 Web 浏览器中渲染交互式 3D 和 2D 图形的技术,它可以用于开发各种类型的应用。以下是一些常见的应用类型和它们各自的特点,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作…

港科夜闻|2023年全球大学毕业生就业力排名公布,香港科大位列香港第一名

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、2023年全球大学毕业生就业力排名公布,香港科大位列香港第一名。香港科大在泰晤士高等教育2023年全球就业能力大学排名中上升一位至全球第29位,继续位居香港首位。香港科大的毕业生就业能力持续跻身…

游戏开发原画的设计方法

游戏原画设计是游戏开发中至关重要的一环,因为它直接影响到游戏的视觉吸引力和用户体验。以下是一些常见的游戏原画设计方法,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 理解游戏概念&…

服务器中启动和停止项目

服务器中启动和停止项目 一、前言二、使用命令启动和关闭项目1、启动项目2、停止项目 三、使用可执行脚本启动和关闭项目1、启动项目2、停止项目 一、前言 在服务器上部署项目,一般就是将项目挂在后台,如果是微服务首选docker-compose,可以看…

【LangChain实战】LangChain快速入门

1、什么是大语言模型 大语言模型是一种人工智能模型,通常使用深度学习技术,比如神经网络,来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多,可以达到数十亿甚至更多,这使得它们能够理解和生成高度复杂…

Web框架与Django简介

Web框架与Django简介 一、Web应用的组成 我们为了开发一款Web软件首先要了解什么才是Web应用软件呢? 对于传统的应用软件来说,基本都是部署单机使用,而Web应用软件就不一样,Web应用软件是基于B/S架构的,B和S都在不同…