DELIMETER $$
CREATE EVENT loan_balance ON SCHEDULE EVERY '1' MONTH AND '5' DAYS
DO BEGIN UPDATE users SET loan_balance = total_loans_collected -
total_loans_paid;
END$$
DELIMETER;
你好!我想在每月的5号更新此表格,而不仅仅是每月更新一次。 “ AND'5'DAYS没用。
答案 0 :(得分:1)
您需要一个稍微不同的ON SCHEDULE
短语。
AT '2018-04-01 03:01' + INTERVAL 5 DAY EVERY MONTH
在每个月的第五天当地时间03:01触发您的事件。
03:01
是安排工作的好时机,因为它不会因标准时间/夏令时的切换而混乱。
答案 1 :(得分:0)
您可以将其变成generated column,而不是使用触发器来更新loan_balance
列。
ALTER TABLE users MODIFY COLUMN loan_balance INT GENERATED ALWAYS AS
(total_loans_collected - total_loans_paid) STORED;
除非我缺少任何东西,否则我相信这是最理想的方法,并且肯定更容易维护。