创建触发器对记录变更进行计数

背景:
生产上某张Main设备表,每秒近1900的update,导致了主从的延迟,做一个触发器,统计出update异常偏高的设备型号,提供给平台做如类似黑名单中。(每次更新都会更新update_time字段)

create table device_update(
sub_serial varchar(64) NOT NULL COMMENT '设备短序列号',
nums int NOT NULL COMMENT '更新次数',
PRIMARY key (sub_serial)
)ENGINE=innodb DEFAULT CHARSET=utf8;
delimiter |
CREATE TRIGGER tr1
AFTER UPDATE ON device_info
FOR EACH ROW
BEGIN
SET @old_update_time = OLD.update_time;
SET @new_update_time = NEW.update_time;
SET @sub_serial = NEW.sub_serial;
IF  @old_update_time <> @new_update_time THEN
INSERT INTO test.device_update  select @sub_serial,1 from dual ON DUPLICATE KEY UPDATE nums=nums+1;
end if;
end;

|

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值