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号更新这个表,而不仅仅是每月一次。“和”5“天没用。
而不是使用触发器来更新 loan_balance 专栏,你可以把它变成 generated column 是的。
loan_balance
ALTER TABLE users MODIFY COLUMN loan_balance INT GENERATED ALWAYS AS (total_loans_collected - total_loans_paid) STORED;
除非我遗漏了什么,否则我相信这是最理想的方法,而且维护起来肯定更容易。
你需要一个稍微不同的 ON SCHEDULE 短语。
ON SCHEDULE
AT '2018-04-01 03:01' + INTERVAL 5 DAY EVERY MONTH
在每个月的第五天当地时间03:01开始您的活动。
03:01 是安排工作的好时机,因为它不会被标准时间/夏令时切换搞砸。
03:01