在 MySQL 中使用触发器监视用户资产变更

  • By 王小帅
  • 1 min read
  • Tags: 
  • mysql

使用 MySQL 的触发器来实现用户表中的资产字段更新后自动向资产记录表 user_asset_watch 中插入一条记录,记录下变化前后的数据。

创建触发器:

DELIMITER ^^
CREATE TRIGGER t_user_assets_watch
	BEFORE UPDATE ON users
	FOR EACH ROW 
BEGIN
        IF (OLD.balance!=NEW.balance or OLD.balance_usdt!=NEW.balance_usdt 
            or OLD.frozen!=NEW.frozen or OLD.frozen_usdt!=NEW.frozen_usdt) THEN
            INSERT INTO user_asset_watch(user_id,balance_old,balance_new,frozen_old,frozen_new) 
            VALUES(OLD.id,OLD.balance,NEW.balance,OLD.frozen,NEW.frozen);
        END IF^^
END^^
DELIMITER ;

删除触发器:

DROP TRIGGER IF EXISTS t_user_assets_watch;