2016-07-08 4 views
0

Ich möchte die Datensätze löschen, die älter als 1 Tag ist. Was ist der beste Weg, um es zu erreichen? Ich habe das Event nie zuvor benutzt, also habe ich ein kleines Problem. Zum Beispiel: Ich möchte Datensätze löschen, in denen start_time älter als 1 Tag ist. durch einige Recherchen bin ich an diesen Punkt gekommen.Erstellen Sie löschen Ereignis, das ältere Datensätze auf Tagesbasis gelöscht

CREATE EVENT deleteRecords 
ON SCHEDULE EVERY 1 DAY 
ON COMPLETION PRESERVE 
DO 
DELETE FROM databaseName.tableName WHERE start_time < DATE_SUB(NOW(), 
INTERVAL 1 DAY) 
+0

Ich habe ein paar Links aus meiner Profilseite für Veranstaltungen. Wie Dinge anstellen, etc. – Drew

+0

der beste Weg dazu ist, auch zwei Trigger für diese Tabelle (ON INSERT und OND UPDATE) zu erstellen, die die Zeile eine a-Tabelle speichern. Das Delete Event kann also ohne weitere Aktionen ausgeführt werden –

+0

Haben Sie eine Beschreibung Ihrer Tabelle? Es ist ein bisschen schwierig zu erraten, ob Ihre 'start_time' nur ein Zeit- oder Zeitstempel ist oder welcher Datentyp auch immer. Die von Ihnen angezeigte DELETE-Funktion ist logisch korrekt. – rhavendc

Antwort

0

Es gibt viele Möglichkeiten, wie Sie Ihr gewünschtes Ergebnis erzielen können.

//sample 1 
DELETE FROM databaseName.tableName WHERE DATE_ADD(start_time,INTERVAL 1 DAY) < NOW(); 

//sample 2 
DELETE FROM databaseName.tableName WHERE ADDTIME(start_time,"1 00:00:01") =< NOW(); 

Der Code in Ihrem Beitrag ist in Ordnung, auch zu verwenden. Vergessen Sie jedoch nicht, zuerst Daten zu sichern, wenn Sie nicht sicher sind, was Sie tun.

Referenz Date and Time Functions

Verwandte Themen