在MySQL的每月活动中增加几天

时间:2019-03-14 16:51:10

标签: mysql

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没用。

2 个答案:

答案 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;

除非我缺少任何东西,否则我相信这是最理想的方法,并且肯定更容易维护。