Możesz spróbować użyć tego warunku:
WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY)
Aby cały skrypt SQL wyglądał tak:
CREATE EVENT delete_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
ON COMPLETION PRESERVE
DO BEGIN
DELETE messages WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY);
END;
Jednak u Ciebie rozwiązałbym postawiony problem prostym skryptem cron. Powody, dla których warto to zrobić, są proste:łatwiej jest utrzymać kod, bez brzydkich obejść SQL, płynnie integruje się z Twoim systemem.