我创建了一个事件,该事件将根据插入行的余额和时间每 5 分钟更新一次表“try_event”中的余额。
活动代码:
delimiter $$
CREATE EVENT `event`
ON SCHEDULE every 1 second
DO
begin
-- update balance by 2%
UPDATE try_event
SET Balance = case
WHEN timestampdiff(minute,date_created,current_timestamp) >0 and timestampdiff(minute,date_created,current_timestamp) MOD 5 = 0 and (balance>2000 and balance<3000) then Balance * 1.02
end;
end $$
delimiter ;
桌子 :
create table try_event(balance numeric(10,2) not null,date_created timestamp);
插入行:
insert into try_event values(2500,default);
insert into try_event values(1000,default);
但它仍然balance=2500
在 5 分钟后给出。
当我删除“ (balance>2000 and balance<3000)
”时,整个余额列都会更新,结果是:
2550
1020