1

如何在过期时间戳时自动执行 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());
4

1 回答 1

2

使用可以用于那个

  1. Mysql 事件(恕我直言,最佳候选人)
  2. cron 作业或 Windows 任务计划程序(如果您在 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”的进程“守护进程”。SET GLOBAL event_scheduler = ON;如果当前未启用,则用于启用调度程序。更多关于在此处配置事件调度程序的信息。

如果您想查看架构中的事件

SHOW EVENTS;

更新您的更新语句应如下所示

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

这是SQLFiddle演示

于 2013-06-30T06:36:49.653 回答