Событие MySQL для удаления данных, если прошло 5 лет

#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 При выполнении кода я получаю сообщение об ошибке «База данных не выбрана».