[英]How to delete rows which have a field greater than 24 hours
我有一個包含2個用戶名和一個日期的表-我需要一種處理該表的方法,以便當存儲的日期大於24小時/ 1天-然后將其刪除。
我在想我的Java應用程序可以有一個可以輪詢並執行此操作的線程,或者-是否可以在數據庫端設計一個解決方案? 例如,存儲過程?
謝謝
您可以使用Mysql Event Scheduler在數據庫端定期執行操作。
您還可以使用ScheduledThreadPoolExecutor
在Java中以編程方式執行此操作:
ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor();
// execute every 15 seconds
ses.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// execute query to delete the proper data
}
}, 0, 15, TimeUnit.SECONDS);
要在MySql中定期運行內容,請嘗試事件計划程序
來自MySql文檔的示例Evnet定義:
CREATE EVENT e_hourly
ON SCHEDULE
EVERY 1 HOUR
COMMENT 'Clears out sessions table each hour.'
DO
DELETE FROM site_activity.sessions;
您可以執行以下操作:
db.query("DELETE FROM yourtable WHERE TIMESTAMPDIFF(HOUR, NOW(), yourdate) > 24");
並每天運行一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.