Обновляйте каждые 5 минут значение - PullRequest
0 голосов
/ 11 марта 2020

Я использую MySql базу данных, и я хочу знать, есть ли какие-либо методы для изменения значения столбца каждые x минут / часов / дней.

Например , Я хочу выполнять следующий запрос каждые 5 минут, UPDATE table SET x=0;.

Могу ли я установить событие или что-то подобное из интерфейса PHPMyAdmin?

Ответы [ 2 ]

4 голосов
/ 11 марта 2020

Я не знаю, как использовать интерфейс 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 минут, навсегда.

Если вы хотите отложить выполнение, вы можете добавить STARTS после оператора EVERY:

-- This will delay the first execution in 1 hour
ON SCHEDULE EVERY 5 MINUTE STARTS CURRENT_TIMESTAMP + INTERVAL 1 HOUR

You можно определить, когда СОБЫТИЕ должно перестать работать, используя ENDS:

-- 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 ;

Для получения дополнительной информации обратитесь к документации

0 голосов
/ 11 марта 2020

Я не знаю о 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

...