sql >> Database >  >> RDS >> Mysql

Wat is de beste manier om oude rijen doorlopend uit MySQL te verwijderen?

Probeer een evenement te maken dat automatisch in de database wordt uitgevoerd na het gewenste tijdsinterval.

Hier is een voorbeeld:Als u items wilt verwijderen die meer dan 30 dagen oud zijn uit een tabel 'tableName', met kolomitem 'datetime'. Vervolgens wordt elke dag de volgende query uitgevoerd die de vereiste opruimactie zal uitvoeren.

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)

We moeten ON COMPLETION PRESERVE . toevoegen om het evenement na elke run te behouden. U kunt hier meer informatie vinden:http://www.mysqltutorial .org/mysql-triggers/working-mysql-scheduled-event/



  1. Archieflogboekbestemmingsdirectory instellen in Oracle Database

  2. Oracle E-Business Suite-architectuur in 12.2

  3. Bulksgewijs invoegen in Oracle met .NET

  4. MySQL bestellen voor voor groeperen op