[英]Update every 5 minutes a value
我正在使用 MySql 数据库,我想知道是否有任何方法可以每x分钟/小时/天修改一个列的值。
比如我想每5分钟执行一次下面的查询, UPDATE table SET x=0;
.
我可以从 PHPMyAdmin 界面设置一个事件或类似的东西吗?
我不知道如何使用 PHPMyAdmin 界面来创建事件,但是,这可以在“纯” SQL 中完成:
CREATE EVENT IF NOT EXISTS your_event_name
ON SCHEDULE EVERY 5 MINUTE
DO UPDATE table SET x=0;
关于ON SCHEDULE EVERY 5 MINUTE
,这将立即执行事件,然后每 5 分钟执行一次,永远执行。
如果要延迟执行,可以在EVERY
语句后添加STARTS
:
-- This will delay the first execution in 1 hour
ON SCHEDULE EVERY 5 MINUTE STARTS CURRENT_TIMESTAMP + INTERVAL 1 HOUR
您可以使用ENDS
定义 EVENT 何时停止工作:
-- This will end the event in 1 week
ON SCHEDULE EVERY 5 MINUTE ENDS CURRENT_TIMESTAMP + INTERVAL 1 WEEK
当然,您可以同时使用STARTS
和ENDS
-- This will end the event in 1 week
ON SCHEDULE
EVERY 5 MINUTE -- Play every 5 minutes
STARTS CURRENT_TIMESTAMP + INTERVAL 1 HOUR -- Start in 1 hour
ENDS CURRENT_TIMESTAMP + INTERVAL 1 WEEK -- End in 1 week
如果您有 1 个以上的查询要在事件中执行,则需要将指令包装在BEGIN
/ END
:
DELIMITER $$
CREATE EVENT IF NOT EXISTS your_event_name
ON SCHEDULE EVERY 5 MINUTE
DO
BEGIN
UPDATE table1 SET x=0;
UPDATE table2 SET foo='bar';
END $$
DELIMITER ;
有关更多信息,请查看文档
我不了解 PHPMyAdmin,但是像 Apache NiFi 这样的工具对于此类调度操作非常有用。 只需使用处理器并设置调度设置。 想要查询更多的信息:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.