一尘不染

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

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());

阅读 507

收藏
2020-05-17

共1个答案

一尘不染

使用可以用于

  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 您的更新语句应如下所示

UPDATE online_auctions 
   SET auction_status = 'ENDED' 
 WHERE auction_end_date < NOW();

这是 SQLFiddle 演示

2020-05-17