如何在到期时间戳时自动执行MySQL更新或插入?
所以,假设时间戳是2013-06-30 20:10:00
,我希望在2013-06-03 20:10:00
之后传递日期和时间时自动更新MySQL数据库。
我想更新我的项目,但我不会在我的网站上打开浏览器,所以我想我需要某种服务器触发器?我怎么做?非常感谢
我有跟随Query每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());
答案 0 :(得分:2)
使用可以用于
如果你选择选项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;
启用调度程序。有关配置事件调度程序here的更多信息。
如果您想查看模式中的事件
SHOW EVENTS;
更新您的更新语句应如
UPDATE online_auctions
SET auction_status = 'ENDED'
WHERE auction_end_date < NOW();
这是 SQLFiddle 演示