如何在时间戳字段过期后自动更新MySQL

如何在到期时间戳后自动执行MySQL更新或插入?

因此,可以说时间戳是2013-06-30 20:10:00,我希望在经过该日期和时间后自动更新MySQL DB,因此今天之后2013-06-03

20:10:00

我想更新我的商品,但是我的网站没有打开浏览器,所以我想我需要某种服务器触发器吗?我怎么做?非常感谢

我有以下查询每1秒执行一次,它不起作用:

CREATE EVENT e_second

ON SCHEDULE

EVERY 1 SECOND

DO

UPDATE online_auctions.auction_status

SET auction_status = 'ENDED' WHERE TIMESTAMP(auction_end_date) < (select now());

回答:

使用可以用于

  1. MySQL事件(恕我直言最好的候选人)
  2. cron作业或Windows Task Scheduler(如果您在Windows平台上)

如果您选择选项1,则需要创建一个事件

CREATE EVENT myevent 

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO

UPDATE myschema.mytable

SET mycol = mycol + 1;

使用SHOW PROCESSLIST检查事件调度启用。如果是,ON您应该看到用户“ event_scheduler”的进程“

Daemon”。使用SET GLOBAL event_scheduler =

ON;使调度,如果它目前尚未启用。有关在此处配置事件调度程序的更多信息。

如果要查看架构中的事件

SHOW EVENTS;

您的更新语句应如下所示

UPDATE online_auctions 

SET auction_status = 'ENDED'

WHERE auction_end_date < NOW();

这是 演示

以上是 如何在时间戳字段过期后自动更新MySQL 的全部内容, 来源链接: utcz.com/qa/417982.html

回到顶部