2024 Mysql基础与进阶操作系列之MySQL触发器详解(20)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]

news2024/11/24 17:32:38

欢迎各位彦祖与热巴畅游本人专栏与博客

你的三连是我最大的动力

以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]

专栏跑道一
 ➡️ MYSQL REDIS Advance operation


专栏跑道二
➡️ 24 Network Security -LJS 

​ 

专栏跑道三

➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]

专栏跑道四
➡️RHCE-LJS[Linux高端骚骚操作实战篇]

专栏跑道五

➡️数据结构与算法[考研+实际工作应用+C程序设计]

专栏跑道六 

➡️RHCSA-LJS[Linux初级及进阶骚技能]

上节回顾icon-default.png?t=O83Ahttps://netsecur-cloud-ljs.blog.csdn.net/article/details/142601038

目录

欢迎各位彦祖与热巴畅游本人专栏与博客

你的三连是我最大的动力

以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]

专栏跑道一 ➡️ MYSQL REDIS Advance operation

专栏跑道二➡️ 24 Network Security -LJS 

专栏跑道三

➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]

专栏跑道四➡️RHCE-LJS[Linux高端骚骚操作实战篇]​编辑​

专栏跑道五

➡️数据结构与算法[考研+实际工作应用+C程序设计]

专栏跑道六 

➡️RHCSA-LJS[Linux初级及进阶骚技能]

上节回顾https://netsecur-cloud-ljs.blog.csdn.net/article/details/142601038

1.MySQL触发器详解

简介

1.1MySQL触发器基础

触发器分类

MySql执行时机和数据操作类型分类表

额外补充举例:

2.基础常用关键字

2.1MySQL触发器常用关键字详解说明表及对应示例

 1.BEFORE:

 2.AFTER:

3.FOR EACH ROW:

4.BEGIN和END:

 5.NEW:

6.OLD:

7.SET:

8.IF和THEN:

3.如何定义触发器

语法格式:

触发器定义之选项参数详解说明表:

3.2如何创建和删除触发器

创建触发器语法格式:

 删除触发器语法格式:

3.3触发器的执行时机和对应条件


1.MySQL触发器详解

简介

  • 数据库触发器是一种在特定数据操作(如插入、更新或删除)发生时自动执行的动作。本文将介绍MySQL触发器的基础知识和使用方法。

1.1MySQL触发器基础

触发器分类

MySql执行时机和数据操作类型分类表

按执行时机分类 BEFORE触发器:在数据操作之前执行触发器逻辑
AFTER触发器:在数据操作之后执行触发器逻辑
按数据操作类型分类INSERT触发器:在插入数据之前或之后执行触发器逻辑
UPDATE触发器:在更新数据之前或之后执行触发器逻辑
DELETE触发器:在删除数据之前或之后执行触发器逻辑

额外补充举例:
  • BEFORE INSERT触发器可以用于在插入数据之前验证数据完整性
  • AFTER UPDATE触发器可以用于记录数据变更日志等

 

2.基础常用关键字

2.1MySQL触发器常用关键字详解说明表及对应示例

BEFORE:

表示在数据操作之前执行触发器逻辑

 1.BEFORE:

  -- 在插入数据之前执行的逻辑

CREATE TRIGGER `trigger_before_insert` BEFORE INSERT ON `mytable`
FOR EACH ROW
BEGIN

END;

AFTER:

表示在数据操作之后执行触发器逻辑

 2.AFTER:

 -- 在更新数据之后执行的逻辑END;

CREATE TRIGGER `trigger_after_update` AFTER UPDATE ON `mytable`FOR EACH ROWBEGIN 

FOR EACH ROW:

表示针对每一行数据执行触发器逻辑

3.FOR EACH ROW:

 -- 针对每一行删除操作执行的逻辑

CREATE TRIGGER `trigger_for_each_row` AFTER DELETE ON `mytable`
FOR EACH ROW
BEGIN
 
END;

BEGIN和END:

用于定义触发器的逻辑代码块

4.BEGIN和END:

CREATE TRIGGER `trigger_multiple_statements` AFTER INSERT ON `mytable`
FOR EACH ROW
BEGIN
  DECLARE var INT;
  SET var = NEW.age + 10;
  IF (var > 50) THEN
    -- 逻辑语句1
  ELSE
    -- 逻辑语句2
  END IF;
END;

NEW:

代表要插入、更新或删除的新数据引用。可以通过NEW来访问新值

 5.NEW:

CREATE TRIGGER `trigger_new_value` BEFORE INSERT ON `mytable`
FOR EACH ROW
BEGIN
  SET NEW.name = UPPER(NEW.name);
END;

OLD:

代表要更新或删除的旧数据引用。只能在UPDATE和DELETE触发器中使用

6.OLD:

CREATE TRIGGER `trigger_old_value` BEFORE UPDATE ON `mytable`
FOR EACH ROW
BEGIN
  IF (OLD.age < NEW.age) THEN
    -- 逻辑语句
  END IF;
END;

SET:

用于设置变量的值,可用于对NEW或OLD的字段进行赋值操作

7.SET:

CREATE TRIGGER `trigger_set_value` AFTER INSERT ON `mytable`
FOR EACH ROW
BEGIN
  SET @total = @total + NEW.quantity;
END;

IF和THEN:

用于条件判断,控制触发器逻辑的执行流程

8.IF和THEN:

CREATE TRIGGER `trigger_if_then` BEFORE DELETE ON `mytable`
FOR EACH ROW
BEGIN
  IF (OLD.age > 30) THEN
    -- 逻辑语句1
  ELSE
    -- 逻辑语句2
  END IF;
END;

INSERT、UPDATE、DELETE:分别表示插入、更新和删除操作的关键字,可用于在相应类型的触发器中执行相应的逻辑[不在举例;往期已经详解]

 

3.如何定义触发器

语法格式:

 -- 触发器逻辑

CREATE TRIGGER trigger_name{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON table_nameFOR EACH ROWBEGIN   END;

触发器定义之选项参数详解说明表:

选项参数详解说明
trigger_name:触发器的名称,你可以根据需要自定
{BEFORE | AFTER}:指定触发器在数据操作之前(BEFORE)或之后(AFTER)执行
{INSERT | UPDATE | DELETE}:指定触发器在哪种类型的数据操作时触发,可以是插入数据(INSERT)、更新数据(UPDATE)或删除数据(DELETE)
table_name:指定触发器所属的表名
FOR EACH ROW:确保触发器逻辑应用于每一行受影响的数据
BEGINEND:定义了触发器逻辑的开始和结束位置,你可以在其中编写相应的代码来实现需要的业务逻辑

3.2如何创建和删除触发器

  • 创建触发器语法格式:

  • CREATE TRIGGER trigger_name ...
  •  删除触发器语法格式:

  • DROP TRIGGER IF EXISTS trigger_name;

3.3触发器的执行时机和对应条件

触发器的执行时机和对应条件表

BEFORE触发器:在数据操作之前执行
AFTER触发器:在数据操作之后执行
FOR EACH ROW:对每一行数据执行触发器逻辑

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

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

相关文章

不容错过的10款文件加密软件,2024顶尖办公文件加密软件分享

随着数据隐私和信息安全越来越受到重视&#xff0c;文件加密已经成为保护个人和企业机密信息的必备工具。无论是敏感的个人文件、财务报表、商业机密&#xff0c;还是政府机密信息&#xff0c;都需要高效的加密工具来确保信息安全不被未经授权的人访问。在2024年&#xff0c;我…

盘点2024年4款打工人都在用的PDF软件。

PDF 软件在现代的办公或者是学习当中的应用非常广泛&#xff0c;已经成了很多人的必备工具。因为PDF 文件具有跨设备、跨系统的优势&#xff0c;所以在很多设备上都可以打开浏览。如果有了PDF 编辑软件&#xff0c;查看&#xff0c;编辑&#xff0c;分享也会变得更加方便简单&a…

web自动化测试基础(从配置环境到自动化实现登录测试用例的执行,vscode如何导入自己的python包)

接下来的一段时间里我会和大家分享自动化测试相关的一些知识希望大家可以多多支持&#xff0c;一起进步。 一、环境的配置 前提安装好了python解释器并配好了环境&#xff0c;并安装好了VScode 下载的浏览器和浏览器驱动需要一样的版本号(只看大版本)。 1、安装浏览器 Chro…

回到原点再出发

原文What Goes Around Comes Around作者Michael Stonebraker & Joseph M. Hellerstein其他译文https://zhuanlan.zhihu.com/p/111322429 1. 摘要 本文总结了近35年来的数据模型方案&#xff0c;分成9个不同的时代&#xff0c;讨论了每个时代的方案。我们指出&#xff0c;…

Vue3入门 - provide和inject组合使用

在Vue3中&#xff0c;provide和inject是用于实现依赖注入的一对API。它们允许在组件树中传递和接收数据&#xff0c;而不需要通过每一层显式地传递props。在<script setup>语法中&#xff0c;provide可以用来提供一个值&#xff0c;而inject可以用来接收一个已经提供的值…

RNN(循环神经网络)简介及应用

一、引言 在深度学习领域&#xff0c;神经网络被广泛应用于各种任务&#xff0c;从图像识别到语音合成。但对于序列数据处理的任务&#xff0c;如自然语言处理&#xff08;NLP&#xff09;、语音识别或时间序列预测等&#xff0c;传统的前馈神经网络&#xff08;Feedforward N…

启明智显工业级HMI芯片Model4功耗特性分享

Model4工业级MPU是国产自主面向工业应用的RISC-V架构的应用级芯片&#xff0c;内置玄铁64bit RISC-V CPU C906&#xff0c;主频高达600MHz&#xff0c;算力约1380DMIPS。支持RTOS、linux系统&#xff0c;支持LVGL工具开发UI&#xff1b; Model4系列工业级MPU具有极强的屏显、多…

每日OJ题_牛客_分组_枚举+二分_C++_Java

目录 牛客_分组_枚举二分 题目解析 C代码 Java代码 牛客_分组_枚举二分 分组 (nowcoder.com) 描述&#xff1a; dd当上了宣传委员&#xff0c;开始组织迎新晚会&#xff0c;已知班里有nnn个同学&#xff0c;每个同学有且仅有一个擅长的声部&#xff0c;把同学们分…

计算机组成原理:物理层 —— 编码与调制

文章目录 基本概念编码&#xff08;基带调制&#xff09;调制编码与调制码元 编码方式双极性不归零编码双极性归零编码曼彻斯特编码差分曼彻斯特编码优缺点 调制方法基本的带通调制方法调频 FM调幅 AM调相 PM 混合调制方法正交振幅调制 QAM-16 基本概念 编码&#xff08;基带调…

全国外卖霸王餐系统对接详细步骤操作?

对接全国外卖霸王餐系统并选择适合的系统时&#xff0c;你可以考虑以下几个步骤和标准&#xff1a; 明确业务需求&#xff1a;首先确定你的平台需要哪些功能&#xff0c;如展示霸王餐选项、下单、支付、订单跟踪等 。选择信誉良好的服务提供商&#xff1a;选择提供稳定服务的A…

【物流配送中心选址问题】基于改进粒子群算法

课题名称&#xff1a; 基于改进粒子群算法的物流配送中心选址问题 改进方向&#xff1a;动态惯性权重优化粒子群算法 代码获取方式&#xff1a; 模型描述&#xff1a; 待补充 Matlab仿真结果&#xff1a; 1. 模型优化后的仿真结果 2. 初始解对应的物流配送路径图 3. 粒子…

大厂最牛的 Java 面试八股文合集(全彩版),不接受反驳

金九银十已然来临&#xff0c;找工作的小伙伴比比皆是&#xff0c;很对小伙伴早早的就开始储备技术&#xff0c;准备面试了。 为了帮助小伙伴更好的应对面试&#xff0c;我拉来十几个大佬&#xff0c;汇总一线大厂的情况&#xff0c;给你整了一套超全的面试资料&#xff1a; 16…

以后再也不要说程序员不能拿诺贝尔了

当地时间10月8日&#xff0c;瑞典皇家科学院宣布&#xff0c;将2024年诺贝尔物理学奖授予美国普林斯顿大学的约翰霍普菲尔德&#xff08;John J. Hopfield&#xff09;和加拿大多伦多大学的杰弗里辛顿&#xff08;Geoffrey E. Hinton&#xff09;&#xff0c;以表彰他们“为推动…

如何通过视觉分析检测车辆逆行行为

随着交通网络的快速扩展和车辆数量的持续增加&#xff0c;城市交通管理面临着前所未有的挑战。交通事故的多发原因之一是车辆逆行&#xff0c;这种行为不仅严重威胁其他车辆和行人的安全&#xff0c;也加重了交通拥堵问题。因此&#xff0c;如何有效监控并预防车辆逆行成为城市…

亲测分享:四款必备PDF编辑工具!

除了本地PDF编辑器之外&#xff0c;也有一些在线PDF编辑工具&#xff0c;它们不仅能够提供便捷的编辑体验&#xff0c;还能实现跨平台的无缝协作。接下来会为大家推荐一些本地PDF编辑器以及在线PDF编辑器&#xff01; Foxit PDF Edit 直达链接&#xff08;复制到浏览器打开&a…

算法工程师重生之第二十三天(理论基础 分发饼干 摆动序列 最大子序和 )

参考文献 代码随想录 一、理论基础 贪心一般解题步骤 贪心算法一般分为如下四步&#xff1a; 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 这个四步其实过于理论化了&#xff0c;我们平时在做贪心类的题目 很难去按…

[每日一氵] cython 中如何操作字典——结论是没什么更好的方法

举个例子&#xff0c;把这个函数写成 cython 的来加速 def insert_cell(ids_dict: dict, __id: str, count: int):if __id in ids_dict:ids_dict[__id] countelse:ids_dict[__id] count最简单的方式&#xff0c;就是直接扔到 pyx 文件&#xff0c;然后编译一下&#xff0c;速…

学生家长必备,中小学课本教材电子书批量下载工具

今天再整理更新几个最新的电子书教材网站和下载工具 苏生不惑备用号&#xff0c;分享各种黑科技软件资源和技巧&#xff0c;带你玩转互联网。 首先还是国家中小学智慧教育平台这个网站 https://basic.smartedu.cn/elecEdu 还有在线电子教材网站 http://www.haoduoyun.cc/ …

yolov8/9/10/11模型在中医舌苔分类识别中的应用【代码+数据集+python环境+GUI系统】

yolov8、9、10、11模型在中医舌苔分类识别中的应用【代码数据集python环境GUI系统】 背景意义 目前随着人们生活水平的不断提高&#xff0c;对于中医主张的理念越来越认可&#xff0c;对中医的需求也越来越多。 传统中医的舌诊主要依赖于医生的肉眼观察&#xff0c;仅仅通过这…

【RAG论文精读3】RAG论文综述1(2312.10997)-第1部分

收录于我的专栏&#xff1a;AI修炼之路 简介 论文中英文名 Retrieval-Augmented Generation for Large Language Models: A Survey 面向大型语言模型的检索增强生成&#xff1a;综述 论文地址 arxiv地址&#xff1a;https://arxiv.org/abs/2312.10997 精读理由 这篇综述论…