1

我正在使用 SAILS JS 并且正在使用 mysql 适配器。我有一个名为 User 的模型,具有以下字段ID、USERNAME、EMAIL、ACTIVE_STATUS 和 CREATED_DATE。

默认情况下,active_status 设置为 0。我想在 created_date + 3 days 等于 Today 时更新状态为 1。

请提出任何可能的方法来做到这一点。

4

1 回答 1

1

希望你可以使用MySQL 的 Event Scheduler

通过以下方式激活它:SET GLOBAL event_scheduler = ON;

创建事件语法:

CREATE EVENT `event_name` 
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE] 
[ENABLE | DISABLE | DISABLE ON SLAVE]
DO BEGIN
    -- event body
END;

可以为时间表分配各种设置,例如

  • 在特定日期/时间运行一次:AT 'YYYY-MM-DD HH:MM.SS' 例如 AT '2011-06-01 02:00.00'
  • 在特定时间段过后运行一次:AT CURRENT_TIMESTAMP + INTERVAL n [HOUR|MONTH|WEEK|DAY|MINUTE] 例如 AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
  • 永远以特定的时间间隔运行:每隔 n [HOUR|MONTH|WEEK|DAY|MINUTE] 例如每 1 天
  • 在特定时间段内以特定间隔运行:每 n [HOUR|MONTH|WEEK|DAY|MINUTE] 开始日期结束日期,例如每 1 天开始 CURRENT_TIMESTAMP + INTERVAL 1 WEEK ENDS '2012-01-01 00:00.00'

例子:

SET GLOBAL event_scheduler = ON; -- enable event scheduler.
SELECT @@event_scheduler;  -- check whether event scheduler is ON/OFF
CREATE EVENT e_store_ts  -- create your event
    ON SCHEDULE
      EVERY 24 HOURS  -- run every 24 hours
    DO
      UPDATE myschema.users set active_status = 1

参考:http ://dev.mysql.com/doc/refman/5.5/en/create-event.html

于 2016-08-19T06:12:03.397 回答