mysql insert与update触发器
前言背景最近做的一个项目某一个功能模块必须要下线,这个模块又很重要,因为牵扯到修改用户的相关状态,不修改用户就不能使用;但是关联的各种客户端APP、IOS、H5新版本开发完成因为某些原因不能上线,为了不影响用户使用,只能从底层的数据库去想想办法,想来想去只有用触发器(trigger)了,虽然会影响一点效率,不过好在只牵涉一张表,而且表数据操作频率不高,而且只用撑过一段时间就可以下掉。该表有十几个
·
前言
背景
最近需要在数据库某一张表发生变更(新增或者更新时)更改其他字段状态,又不想修改重新发布,考虑一个临时使用一段时间的方案,只能从底层的数据库想想办法。想来想去只有用触发器(trigger)了,虽然会影响一点效率,不过好在只牵涉一张表,而且表数据操作频率不高,而且只用撑过一段时间就可以下掉。
该表有十几个字段,其中主键为自增ID,int型,假设表名为user_info,需要修改的字段为is_available、is_delete。
目标
需要触发器做到的的是在对目标表进行插入insert、更新update操作时,对该表内新增或者修改的记录的几个字段值进行改变。
JUST DO IT
第一次尝试
在每次进行insert、update后,关联更新相关记录字段就可以了。
0.1版本
DELIMITER $
DROP TRIGGER IF EXISTS t_afterinsert_on_patient;
CREATE TRIGGER t_beforeupdate_on_ user_info
BEFORE UPDATE ON user_info
FOR EACH ROW
BEGIN
SET NEW.is_available = 'Y', NEW.is_delete='N';
END$
更多推荐
已为社区贡献1条内容
所有评论(0)