Vous pouvez essayer d'utiliser cette condition :
WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY)
Pour que l'ensemble du script SQL ressemble à ceci :
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;
Cependant, à votre place, je résoudrais le problème donné avec un simple script cron. Les raisons de le faire sont simples :il est plus facile de maintenir le code, pas de solutions de contournement SQL laide, s'intègre facilement à votre système.