mysql触发器中监控字段的改变方式

 更新时间:2023年08月30日 09:42:16   作者:某科学的南条  
这篇文章主要介绍了mysql触发器中监控字段的改变方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mysql触发器中监控字段的改变

mysql的触发器分为多种,INSERT或UPDATE或DELETE触发器

比如使用UPDATE触发器的时候,是整条数据改变后就会触发

那么检测单个字段的改变,

可以有如下写法:

if NEW.nor_price <> OLD.nor_price then
     update `dst_111yao_doms`.`d_price_upt` set price = NEW.nor_price , `status` = '0' , createtime = now() 
     where olshopid = NEW.olshopid and tfid = NEW.pfid and warecode = NEW.outter_id and skuid = NEW.sku;
end if;

当一条数据触发了触发器后,判定NEW字段和OLD字段是否相等,如果不相等,那么就监控到了该字段的改变

mysql触发器怎么写?

一个项目涉及到MySQL触发器的应用 以前没怎么接触过 就百度了一下 结果吧 考下来基本用不了 看来还是得自己动手 

我们不去看别的 看我的就行 这个方法比较简单 直接phpmyadmin里点击触发器 然后填上该填的

比如你监控a表的b字段那么选择的表就是a,然后想控制a表b字段有更新的时候 把传入更新的值乘以7保存到表里 就是你原本是程序传给B的值是1 想实现存表中的值是它的7倍 我们看看代码应该怎么写

after和before怎么选?涉及到值修改的都是before after只能取值 不能修改

代码:

begin
set new.b=new.b * 7;
//这里还可以写SQL语句 需要注意的是当前表请使用上方set语句无需使用SQL语句,非当前表使用SQL语句 new.*代表当前准备写入的值 old.*代表该字段的原有值
end

是不是很简单呢?

总结 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Mysql5.7中使用group concat函数数据被截断的问题完美解决方法

    Mysql5.7中使用group concat函数数据被截断的问题完美解决方法

    前几天在项目中遇到一个问题,使用 GROUP_CONCAT 函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题。后来查找出原因,解决方法大家跟随脚本之家小编一起看看吧
    2018-03-03
  • MySQL DEFINER具体使用详解

    MySQL DEFINER具体使用详解

    在 MySQL 数据库中,在创建视图及函数的时候,你有注意过 definer 选项吗?本篇文章主要介绍下 MySQL 中 definer 的含义及作用,感兴趣的可以了解一下
    2021-08-08
  • MySQL系列之九 mysql查询缓存及索引

    MySQL系列之九 mysql查询缓存及索引

    缓存SELECT操作或预处理查询的结果集和SQL语句,当有新的SELECT语句或预处理查询语句请求,先去查询缓存,判断是否存在可用的记录集,判断标准:与缓存的SQL语句,是否完全一样,区分大小写
    2021-07-07
  • 一步步带你学习设计MySQL索引数据结构

    一步步带你学习设计MySQL索引数据结构

    索引是存储索引用于快速找到数据记录的一种数据结构,就好比一本书的目录部分,通过目录中对应的文章的页码,便可以快速定位到需要的文章,下面这篇文章主要给大家介绍了关于MySQL索引数据结构的相关资料,需要的朋友可以参考下
    2022-11-11
  • Mysql表批量添加字段一些示例代码

    Mysql表批量添加字段一些示例代码

    这篇文章主要给大家介绍了关于Mysql表批量添加字段的相关资料,在MySQL中可以使用ALTER TABLE语句来批量添加字段,下面这篇文章通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • MYSQL时区导致时间差了14或13小时的解决方法

    MYSQL时区导致时间差了14或13小时的解决方法

    本文主要介绍了MYSQL时区导致时间差了14或13小时的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 一次SQL如何查重及去重的实战记录

    一次SQL如何查重及去重的实战记录

    sql去重这可以说算是比较经典的面试题了,这篇文章主要给大家介绍了一次SQL如何查重及去重的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • SQL计算timestamp的差值的方法

    SQL计算timestamp的差值的方法

    这篇文章主要介绍了SQL计算timestamp的差值的方法的相关资料,需要的朋友可以参考下
    2017-05-05
  • 解决MySql版本问题sql_mode=only_full_group_by

    解决MySql版本问题sql_mode=only_full_group_by

    这篇文章主要介绍了解决MySql版本问题sql_mode=only_full_group_by,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • MYSQL使用.frm恢复数据表结构的实现方法

    MYSQL使用.frm恢复数据表结构的实现方法

    在这里我们探讨使用.frm文件恢复数据表机构(当然如果你以前备份过数据表,你可以使用调用备份的数据表)
    2010-02-02

最新评论