Выполните удаление записи perticular через некоторый интервал времени в mysql

DROP EVENT `deleteTestEntries`;
CREATE DEFINER=`root`@`localhost` EVENT `deleteTestEntries`
    ON SCHEDULE EVERY 1 MINUTE
    STARTS '2018-05-25 18:17:01'
    ON COMPLETION NOT PRESERVE ENABLE DO
    DELETE FROM lead_master WHERE lead_master.lname LIKE '%Test%'

Что не так в вышеуказанном событии. Он был создан без ошибок, но не выполняет никаких действий. Я просто хочу удалить записи из моей таблицы lead_master, где lname - "Test"

3 ответа

Решение

Я наконец сделал это с помощью cron. Я создал контроллер, который вызывает функцию модели, содержит запрос на удаление записи. и установите задание cron, которое вызывает контроллер через определенный интервал времени.

Зайдите в файл my.ini и добавьте эту строку, скорее всего, это проблема.

event_scheduler = on

Перезапустите mysql. Видимо, вы даже можете установить его на лету

Я предполагаю, что вам не нужно событие каждую минуту. Просто определите представление, чтобы отфильтровать записи, которые вам не нужны:

create view v_lead_master as
    select lm.*
    from lead_master lm
    where lm.lname not like '%Test%';

Затем запланируйте задание или событие каждый день в медленном периоде, чтобы удалить нужные вам строки. Ваше приложение должно использовать вид. Ваше тестирование должно использовать базовую таблицу.

Другие вопросы по тегам