sql >> Databasteknik >  >> RDS >> Mysql

Hur man tar bort en MySQL-post efter en viss tid

Du kan prova att använda detta villkor:

WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY)

Så att hela SQL-skriptet ser ut så här:

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;

Men på ditt ställe skulle jag lösa det givna problemet med ett enkelt cron-skript. Skälen till att göra detta är enkla:det är lättare att underhålla koden, inga fula SQL-lösningar, integreras smidigt med ditt system.



  1. Sök i flera tabeller och visa även tabellnamn i resulterande rader

  2. hur ändrar man en befintlig kontrollbegränsning?

  3. SQL Server 2012 kolumnidentitetsökning hoppar från 6 till 1000+ på 7:e posten

  4. Ska jag designa en tabell med en primärnyckel av varchar eller int?