Py学习  »  DATABASE

在mysql中为每月事件添加天数

Godlovesme • 4 年前 • 577 次点击  
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“天没用。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47364
 
577 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Caleb Goodman
Reply   •   1 楼
Caleb Goodman    5 年前

而不是使用触发器来更新 loan_balance 专栏,你可以把它变成 generated column 是的。

ALTER TABLE users MODIFY COLUMN loan_balance INT GENERATED ALWAYS AS
(total_loans_collected - total_loans_paid) STORED;

除非我遗漏了什么,否则我相信这是最理想的方法,而且维护起来肯定更容易。

O. Jones
Reply   •   2 楼
O. Jones    5 年前

你需要一个稍微不同的 ON SCHEDULE 短语。

 AT '2018-04-01 03:01' + INTERVAL 5 DAY EVERY MONTH

在每个月的第五天当地时间03:01开始您的活动。

03:01 是安排工作的好时机,因为它不会被标准时间/夏令时切换搞砸。