我已经创建了一个事件,它将根据插入行的平衡和时间,每5分钟后更新表'try_event'中的余额。根据MySQL中的代码不执行事件
事件代码:
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);
但它毕竟是给5分钟balance=2500
后。
当我删除“(balance>2000 and balance<3000)
”整余额列被更新,结果是:
2550
1020
您是否设置了全局event_scheduler = ON? – 2013-02-16 19:50:53
@BillKarwin YES – user1948493 2013-02-16 19:53:19
@BillKarwin当我从事件代码中移除“(平衡> 2000和平衡<3000)”时,执行事件。 – user1948493 2013-02-16 19:58:28