首页 > 解决方案 > 更新 MySQL 日期列

问题描述

假设我有下表,它有两列 id (int) 和 date_added (date)

-------------------
| id | date_added |
-------------------
| 1  | 2018-02-01 |
| 2  | 2018-02-02 |
| 3  | 2018-02-03 |

我想要实现的是每 24 小时使用 mysql 事件更新每列的日期(1 天 +)。所以例如

2018-02-01 -> 2018-02-02
2018-02-02 -> 2018-02-03
2018-02-03 -> 2018-02-04

etc

知道怎么做吗?

标签: mysqldatabasedatesql-updatemariadb

解决方案


默认情况下,事件调度程序被禁用。在这种情况下,您需要通过

SET GLOBAL event_scheduler=ON

现在您可以创建一个每天更新一次表格的事件:

CREATE EVENT your_event
ON SCHEDULE EVERY 1 DAY
UPDATE your_table SET date_added=DATE_ADD(date_added, INTERVAL 1 DAY)

为确保不会更新同一天的条目,您还可以在 create event 语句的末尾添加 where 子句。


推荐阅读