Почему запланированное событие не удаляет данные из базы данных MySQL

Я использую php и mysql. Вставка данных в поле даты и времени с использованием даты (Y-m-d H: i: s) в codeigniter.

CREATE EVENT AutoDeleteRows
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 30 SECOND
DO
DELETE LOW_PRIORITY FROM a_database.event_temp_users
WHERE registration_date< DATE_SUB(NOW(), INTERVAL 1 MINUTE)

Через 1 минуту я обновляю таблицу, но данные все еще там. Событие запускается каждые 30 секунд, и оно удаляет все строки, которые старше 1 минуты, не так ли?

Использование phpmyadmin и движка InnoDB.

РЕДАКТИРОВАТЬ
Даже если я сделаю

CREATE EVENT AutoDeleteRows
ON SCHEDULE EVERY 30 SECOND
DO
DELETE LOW_PRIORITY FROM a_database.event_temp_users
WHERE registration_date< DATE_SUB(NOW(), INTERVAL 1 MINUTE)

Это все еще не работает

0

Решение

Если ваше событие должно запускаться каждые 30 секунд, вы должны использовать:

CREATE EVENT AutoDeleteRows
ON SCHEDULE EVERY 30 SECOND
DO
DELETE LOW_PRIORITY FROM a_database.event_temp_users
WHERE registration_date< DATE_SUB(NOW(), INTERVAL 1 MINUTE)

вместо.

Чтобы повторять действия через регулярные промежутки времени, используйте КАЖДЫЙ пункт.

С AT ваше событие будет выполнено только один раз в этот определенный момент времени:

Отметка времени AT используется для одноразового события. Он указывает, что событие выполняется один раз только в дату и время, заданные меткой времени, которая должна включать в себя как дату, так и время, или должна быть выражением, которое разрешает значение datetime.

оба из главы СОЗДАТЬ Синтаксис СОБЫТИЯ

Вам нужно будет проверить, работает ли планировщик событий. Это может быть сделано с

SELECT @@event_scheduler;

Если результат должен быть OFF и у вас есть право запустить планировщик событий, затем вы можете активировать планировщик событий с помощью

SET GLOBAL event_scheduler = 'ON';

Увидеть Конфигурация планировщика событий

Глобальная системная переменная event_scheduler определяет, является ли
Планировщик событий включен и работает на сервере. Имеет один из
эти 3 значения, которые влияют на планирование событий, как описано здесь:

  • OFF: Планировщик событий остановлен. Поток планировщика событий не запускается, не отображается в выходных данных SHOW PROCESSLIST, и запланированные события не выполняются. OFF — это значение по умолчанию для event_scheduler.

Когда планировщик событий остановлен (event_scheduler выключен), его можно запустить, установив для значения event_scheduler значение ON. (См. Следующий пункт.)

  • ON: Планировщик событий запущен; поток планировщика событий запускается и выполняет все запланированные события.

  • ОТКЛЮЧЕНО: Это значение делает планировщик событий неработоспособным. Когда планировщик событий отключен, поток планировщика событий не запускается (и поэтому не отображается в выходных данных SHOW PROCESSLIST). Кроме того, состояние планировщика событий нельзя изменить во время выполнения.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]