sql >> Databáze >  >> RDS >> Mysql

Jaký je nejlepší způsob, jak postupně odstranit staré řádky z MySQL?

Zkuste vytvořit Událost, která se v databázi spustí automaticky po požadovaném časovém intervalu.

Zde je příklad:Chcete-li odstranit položky, které jsou starší než 30 dní, z nějaké tabulky 'název_tabulky' se záznamem ve sloupci 'datetime'. Poté se každý den spustí následující dotaz, který provede požadovanou akci čištění.

CREATE EVENT AutoDeleteOldNotifications
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY 
ON COMPLETION PRESERVE
DO 
DELETE LOW_PRIORITY FROM databaseName.tableName WHERE datetime < DATE_SUB(NOW(), INTERVAL 30 DAY)

Potřebujeme přidat ON COMPLETION PRESERVE zachovat událost po každém běhu. Více informací naleznete zde:http://www.mysqltutorial .org/mysql-triggers/working-mysql-scheduled-event/



  1. správná anotace hibernace pro byte[]

  2. Jak formátovat čísla ve vědecké notaci v Oracle

  3. PHP mysql prohledává více tabulek pomocí klíčového slova

  4. Více o zavedení časových pásem v dlouhodobém projektu