#mysql #events
Вопрос:
Как я могу использовать событие в mysql, чтобы проверить, являются ли данные старше 5 лет, а затем удалить эту строку, если утверждение верно?
Я попробовал следующее, но безуспешно
CREATE EVENT IF NOT EXISTS `Delete_data_after_5_years` ON SCHEDULE EVERY 1 DAY COMMENT 'Clean up GDPR data at 1 AM.' DO DELETE FROM b2sjcwjexw158glf.customer WHERE registered lt; DATE_SUB(NOW(), INTERVAL 5 YEAR)
Мои данные/база данных выглядят так (не обращайте внимания на данные, это просто тестовые данные)
Комментарии:
1. В чем именно это проблема? сам код процедуры события выглядит как правильный. Единственный момент — я должен использовать
WHERE registered lt; CURRENT_DATE - INTERVAL 5 YEAR
.2. @Akina Я просто запутался в части интервалов. Означает ли это, что он будет автоматически рассчитываться с указанной даты(зарегистрирован), если прошло 5 лет?
3. Нет, наоборот, вычисляется дата, которая была 5 лет назад, и
registered
сравнивается с этой датой.4. Оператор delete не завершается в опубликованном коде — был ли синтаксис кода и компиляция?
5. @P. Salmon При выполнении кода я получаю сообщение об ошибке «База данных не выбрана».