mysql触发器只修改当前行的值,不要整张表都改?

示例如下:(说明:只修改当前行的某个值,而不是全部修改)

drop trigger if exists t_afterupdate_on_ot_user;
	CREATE TRIGGER t_afterupdate_on_ot_user
	AFTER UPDATE ON ot_user
	FOR EACH ROW
	begin
	INSERT INTO ot_user_jk
		( UE_ID,old_UE_account,UE_account, old_UE_phone,UE_phone)
		SELECT OLD.UE_ID, OLD.UE_account , NEW.UE_account ,OLD.UE_phone,NEW.UE_phone FROM dual
		WHERE NOT EXISTS(
		      SELECT *
		      FROM ot_user_jk
		      WHERE UE_ID = OLD.UE_ID
		);
		if OLD.UE_account<>NEW.UE_account then 
		update ot_user_jk set old_UE_account=OLD.UE_account,UE_account=NEW.UE_account where UE_ID = OLD.UE_ID;
		end if;

		if OLD.UE_phone<>NEW.UE_phone then 
		update ot_user_jk set old_UE_phone=OLD.UE_phone,UE_phone=NEW.UE_phone where UE_ID = OLD.UE_ID;
		end if;

	end;


create TRIGGER trig before update on table_name for each row
begin
if NEW.id>0 then
 
set NEW.a=NEW.b+NEW.c;
 
end if ;
 
end ;


参考链接:https://zhidao.baidu.com/question/562140490.html?fr=iks&word=mysql%B4%A5%B7%A2%C6%F7%D6%BB%D0%DE%B8%C4%B5%B1%C7%B0%D0%D0%B5%C4%D6%B5%2C%B2%BB%D2%AA%D5%FB%D5%C5%B1%ED%B6%BC%B8%C4%3F&ie=gbk

你可能感兴趣的:(mysql,触发器)