Sie können es mit dieser Bedingung versuchen:
WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY)
Damit das ganze SQL-Skript so aussieht:
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;
An deiner Stelle würde ich das gegebene Problem jedoch mit einem einfachen Cron-Skript lösen. Die Gründe dafür sind einfach:Es ist einfacher, den Code zu pflegen, es gibt keine hässlichen SQL-Workarounds, es lässt sich reibungslos in Ihr System integrieren.