如何在到期时间戳后自动执行MySQL更新或插入?
因此,可以说时间戳是2013-06-30 20:10:00,我希望在经过该日期和时间后自动更新MySQL DB,因此今天之后2013-06-03 20:10:00。
2013-06-30 20:10:00
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,则需要创建一个事件
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 PROCESSLIST
ON
SET GLOBAL event_scheduler = ON;
如果要查看架构中的事件
SHOW EVENTS;
UPDATE 您的更新语句应如下所示
UPDATE online_auctions SET auction_status = 'ENDED' WHERE auction_end_date < NOW();
这是 SQLFiddle 演示