Mysql数据库当字段由非0变为0,触发写入另一个数据表,创建触发器

复盘—MySQL触发器实现监听数据表值的变化,对其他数据表做更新 这篇文章介绍了MySQL中创建触发器来监控订单商品表状态变化并更新订单备注的方法。主要内容包括: 基础语法:使用DELIMITER临时修改SQL结束符以创建多语句触发器 需求演进: 第一版:仅检查单行记录的售后数量变化 第二版:根据售后数量是否为0设置不同备注 第三版:考虑同一订单多条商品记录的全局状态判断 关键改进点: 通过子查询检查同一订单所有商品的售后状态 使用COUNT(ID)=0替代NOT EXISTS提高效率 添加索引优化性能 注意事项: 并发更新的潜在问题 NULL值处理 性能优化建议 阅读详情

数据表test1(字段Q1,Q2,Q3,Q4,Timenow),

数据表test2(字段Q1,Q2,Q3,Q4,Timenow),与test1不同的是Timenow是日期

需求1:

当Q1、Q2、Q3、Q4任意一个由非0,变为0时,需要将旧值记录到test2,比如test1表中的Q1为100,突然变为0,那么需要将100记录到test2表中的Q1。正常情况下,变为0不会在一天内多次发生(用户更新硬件,然后进行手动Reset时的当前值记录)。

需求2:

Q1、Q2、Q3、Q4在同一天不同时段被置为0时,需要合并到一行记录上。即避免出现同一天多行的现象。

功能开发:

创建触发器,如下语句:

说明:OLD、New均为数据库的关键字,表示旧值和新值。另外数据库的可视化工具,如Mysql Front、HeidiSQL均可右键创建触发器、事件、存储过程,不过语句还需要根据需要进行调整。

CREATE Trigger rl_test1 before update on `test1` for each row
BEGIN

#这里是判断是否有从非0变为0的存在,若有则下一步
IF(
  (Old.Q1 !='0') and (NEW.Q1='0') or
  (Old.Q2 !='0') and (NEW.Q2='0') or
  (Old.Q3 !='0') and (NEW.Q3='0') or
  (Old.Q4 !='0') and (NEW.Q4='0') )

then #若有从非0变为0,说明存在数据的Reset,重置
  #判断test2表中,是否有当天的行,若没有则新建一行,便于保存Reset前的数据
  if NOT EXISTS (SELECT * FROM test2 WHERE timenow =CURDATE()) 
  THEN
  INSERT INTO test2 (`Q1`) values ('0');#这里是插入一行,插入的数据可以是任意一个
  END IF;
END IF;

#到此,已进行非0到0的判断,且判断目标表格是否有当天的数据行,若没有则插入一行。那么此时test2已存在当天的数据行。

#判断是否为Q1的变化,若是,则更新至目标表格test2
IF((Old.Q1 !='0') and (NEW.Q1='0'))
then
update test2 set `Q1`=old.Q1 where timenow = curdate();
end if;


#判断是否为Q2的变化,若是,则更新至目标表格test2
IF((Old.Q2 !='0') and (NEW.Q2='0'))
then
update test2 set `Q2`=old.Q2 where timenow = curdate();
end if;

#判断是否为Q3的变化,若是,则更新至目标表格test2
IF((Old.Q3 !='0') and (NEW.Q3='0'))
then
update test2 set `Q3`=old.Q3 where timenow = curdate();
end if;

#判断是否为Q4的变化,若是,则更新至目标表格test2
IF((Old.Q4 !='0') and (NEW.Q4='0'))
then
update test2 set `Q4`=old.Q4 where timenow = curdate();
end if;

END

实测:可行

SGX软硬件栈(二)——硬件指令 硬件指令分为内核权限硬件指令和用户权限硬件指令。内核权限硬件指令指的是指令需要通过内核态下才能访问,缩写是ENCLS。用户权限硬件指令指的是指令用户态下便能访问,缩写是ENCLU。每一个具体的功能指令被称为叶功能,如EADD叶功能,因为叶功能之间的区分是硬件指令(如ENCLS指令:0x 0F 01 CF)的EAX值不同,因此ENCLS指令的EAX在输入时都是用作叶功能号。 内核权限硬件指令-ENCLS 如图2所示,SGX 1代指令中,ENCLS主要用于管理Enclave生命周期等。比如下文将介绍的Enc 阅读详情

相关推荐

微处理器实验报告-实验四

实验四 可编程定时/计数器8253实验 一、实验要求 利用8086外接8253可编程定时/计数器,可以实现方波的产生。 二、实验目的 1、学习8086与8253的连接方法。 2、学习8253的控制方法。 3、掌握8253定时器/计数器的工作方式和编程原理

青竹小轩的博客 5112

数据库基础篇 《17.触发器》

数据库基础篇 《17.触发器》

weixin_44981126的博客 1303

DeepSeek高阶应用:DeepSeek+Coze构建智能文献综述与趋势分析自动化系统

本文详细介绍了如何利用DeepSeek与Coze构建智能文献综述与趋势分析自动化系统。通过DeepSeek的深度语义理解和结构化信息提取能力,结合Coze的可视化工作流编排,实现学术论文的自动解析、分类整理与知识入库。该系统能7x24小时自动追踪领域前沿,将研究人员从繁琐的文献处理中解放出来,专注于更高层次的思考与创新。

weixin_29050271的博客 179

sqlserver 实现数据变动触发信息

1、建立存储过程,功能是动态写入文件中信息,可以在触发器或存储过程调用。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create proc [dbo].[SP_SendMagToFile] ( @path varchar(100), @fileName varchar(100), @msg varch...

weixin_30266885的博客 533

相场断裂模型中的各向异性机制:从裂纹密度到驱动力的数值实现

断裂力学是研究材料在载荷作用下裂纹萌生与扩展规律的基础学科,其核心在于理解材料失效的能量准则与路径选择。传统方法通常预设裂纹路径,而相场断裂模型通过引入连续的相场变量,将裂纹模拟转化为一个能量最小化问题,能够自发预测裂纹的萌生、扩展与分叉,在工程失效分析中具有重要价值。当材料具有显著的方向依赖性时,如单晶、复合材料或轧制金属板,各向同性假设会失效,此时需引入各向异性机制。该机制的核心在于改造两个关键部分:一是裂纹密度函数,通过引入各向异性张量来定义不同方向上形成裂纹微结构的能量成本;二是临界能量释放率(断裂

weixin_31421613的博客 298

3D模型文件格式全解析:从STL到glTF,10种主流格式与转换实战指南

在三维数字内容创作与工程制造领域,3D模型文件格式是数据交换与协作的基石。其核心原理在于以不同的数据结构(如三角网格、NURBS曲面、边界表示等)对三维物体的几何、外观及场景信息进行编码。理解这些格式的技术特性,对于保障数据完整性、提升工作流效率具有关键价值,广泛应用于3D打印、游戏开发、影视动画及工业设计等场景。例如,面向增材制造的STL格式以其极简的三角面片结构成为行业通用语,而支持丰富材质与动画的FBX格式则在影视游戏管线中扮演核心角色。本文聚焦于STL、OBJ、FBX、3MF、STEP等10种主流格

weixin_28520495的博客 356

SQLSERVER 触发器 将一个服务器上的数据库中数据插入到另一个服务器上的数据库中怎么做...

首先要执行 sp_addlinkedserver '服务器ip' 然后开始写语句 insert into ip.库名字.dbo.table select * from iserted

weixin_34365635的博客 1168

【WRF安装】完整自动化 WRF-ARW/WRF-Chem 安装脚本(多服务器测试)

【WRF安装】完整自动化 WRF-ARW/WRF-Chem 安装脚本(多服务器测试)

WW、forever的博客 285

mysql之触发器

一点触发器的笔记,学习中。。。。。

zhao123ping的专栏 401

uniapp - 实现移动端H5微信公众号网页内置浏览器中预览和下载word文档(doc)、excel表格(xls)、ppt文稿、pdf文档等文件,微信内部打开预览和下载到本地详教程,兼容安卓苹果手机

uni-app,微信公众号,h5,移动端,web平台端,网页,网站,Uniapp微信公众号H5网站,内置浏览器下载文档,如何在微信浏览器中预览office文件,word文档,excel文档,pdf文档,ppt文档,office,微信内置浏览器下载文件,下载文件,在微信浏览器里面实现下载任意文件,H5需要在微信浏览器中下载excel文件,UniApp实现网页在微信内置浏览器中下载文件详细教程,安卓点击下载会提示打开浏览器,后端返回流文件,如何解决无法下载文件,跳转至浏览器下载文件,发送到电脑微信,安卓,苹果,

🏆 前端领域优质创作者 1万+

海思图像质量之HiPQTool调试

文章目录一. HiPQTool 界面二. 图像调试三. 将调试参数写入程序中 一. HiPQTool 界面 二. 图像调试 三. 将调试参数写入程序中

lzg2011的博客 2381

【笔记】Oracle触发器实现当一个表的某个字段被更新为空,则报错提示

工作中又遇到这样的问题: 一张表pm_cm_payapply中的vreserve14字段,总是不知道在哪步操作中被致为空(原来的值不为空) 于是打算在表中设置一个触发器 触发器实现: 当表被更新时,判断如果vreserve14被更新为空值,则提示报错 触发器内容: CREATE OR REPLACE TRIGGER tri_vreserve AFTER UPDATE OF vreserve...

努力,学习! 5894

Attention优化|2w字原理&图解: 从Online-Softmax到FlashAttention V1/V2/V3

本文通过原理分析和图解的方式,通俗易懂地FlashAttention系列算法。FlashAttention V1/V2在LLM领域的应用已经非常广泛,相关的论文也反复读了几遍。FA1和FA2论文非常经典,都推荐读一下(不过FA2论文中公式错误不少本文大约1.8w字,包括以下内容:0x07 分布式训推使用FlashAttention0x09 FlashAttention中MQA/GQA以及Causal Mask处理。

具身机器人和通用AI 5232

MySQL数据库查看触发器和MySQL修改和删除触发器(DROP TRIGGER)

查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。MySQL 中查看触发器的方法包括 SHOW TRIGGERS 语句和查询 information_schema 数据库下的 triggers 数据表等。本节将详细介绍这两种查看触发器的方法。

m0_37449634的博客 5806

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

MySQL数据库——MySQL创建触发器(CREATE TRIGGER)

触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。

Itmastergo的博客 7606

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MySQL创建触发器(CREATE TRIGGER)

基本语法 语法格式如下: CREATE <触发器名> < BEFORE | AFTER > <INSERT | UPDATE | DELETE > ON <表名> FOR EACH Row<触发器主体> 语法说明如下。 1) 触发器名 触发器的名称,触发器在当前数据库中必须具有唯一的名称。如果要在某个特定数据库中创建,名称前面应该加上数据库的名称。 2) INSERT | UPDATE | DELETE 触发事件,用于指定激活触发器

Daturexx的博客 7982

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

用phpMyadmin给MySQL数据表创建触发器遇到的问题

今天给MySQL数据库的表创建触发器,想达到的效果

RunningCat的专栏 5540

MySQL8.0 触发器

MySQL的触发器和存储过程一样,都是嵌入到MySQL的一段程序。触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE和DELETE语句。如果定义了触发程序,当数据库执行了这些语句的时候就会激发触发器执行相应的操作,触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。介绍触发器的含义、如何创建触发器、查看触发器、触发器的使用方法以及如何删除触发器。

S_zhangmin的博客 2610

MySQL(88)MySQL创建触发器(CREATE TRIGGER)

触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。

逍遥人世欢 1934

13、创建触发器(CREATE TRIGGER)

触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。 语法格式如下: CREATE <触发器名> < BEFORE | AFTER > <INSERT | UPDATE | DELETE > ON <表名> FOR EACH Row<触发器主体> 语

you can you up up up的博客 1万+

MySQL数据库——MySQL查看触发器

查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。MySQL 中查看触发器的方法包括 SHOW TRIGGERS 语句和查询 information_schema 数据库下的 triggers 数据表等。

Itmastergo的博客 3175

mysql触发器

MySQL从5.0.2版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一段程序。触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE、 DELETE 事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。当对数据表中的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时, 可以使用触发器来实现。

L的博客 2510

MySQL 创建触发器

触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。 语法格式如下: CREATE <触发器名> < BEFORE | AFTER > <INSERT | UPDATE | DELETE > ON <表名> ...

weixin_45743799的博客 1211

数据库之触发器

例如,在具体开发项目时,常会遇到如下情况,当在用户表中插入一个新用户后,用户总书必须要自动加1。就是在对表执行某项操作后,需要自动进行一些处理。此时就可以使用触发器处理数据库对象,可以创建一个触发器对象,每添加一条学生记录,就执行一次计算学生总数的操作,这样可以保证每次添加学生记录后,学生总数与学生记录数一致。

m0_73514785的博客 3225

mysql插入数据创建触发器填充uuid字段值

2、触发器基本语法 语法格式如下: 语法说明如下。触发器的名称,触发器在当前数据库中必须具有唯一的名称。如果要在某个特定数据库中创建,名称前面应该加上数据库的名称。触发事件,用于指定激活触发器的语句的种类。注意:三种触发器的执行时间如下。INSERT:将新行插入表时激活触发器。例如,INSERT 的 BEFORE 触发器不仅能被 MySQL 的 INSERT 语句激活,也能被 LOAD DATA 语句激活。 DELETE: 从表中删除某一行数据时激活触发器,例如 DELETE 和 REPLACE 语句

tanqingfu1的博客 1970

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

触发器 Trigger。

ZHX2285的博客 1523
上一篇: C#中设置ListView的ColumnsHeader的字体大小,颜色及背景色
下一篇: C#Queue<T>队列出现弹出元素被最后一次压入得元素覆盖的问题
Micro_Ryan
博客等级 码龄12年 27粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值