繁体   English   中英

每 5 分钟更新一个值

[英]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

当然,您可以同时使用STARTSENDS

-- 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 这样的工具对于此类调度操作非常有用。 只需使用处理器并设置调度设置。 想要查询更多的信息:

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.11.3/org.apache.nifi.processors.standard.PutSQL/index.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM