Puoi provare a utilizzare questa condizione:
WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY)
In modo che l'intero script SQL assomigli a questo:
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;
Tuttavia, al tuo posto, risolverei il problema dato con un semplice script cron. Le ragioni per farlo sono semplici:è più facile mantenere il codice, nessuna brutta soluzione SQL, si integra perfettamente con il tuo sistema.