簡體   English   中英

如何刪除字段大於24小時的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM