mysql怎麼在規定時間之後自動刪除資料
mysql
我在用java做一個待辦事項,用mysql做資料庫想實現第二天自動刪除完成的行
java
#補充
根據我設定的時間戳跟目前時間進行比較,再進行刪除因為我是用se,資料庫用時才開的 很抱歉,沒有寫清楚問題。
根據我設定的時間戳跟目前時間進行比較,再進行刪除因為我是用se,資料庫用時才開的
很抱歉,沒有寫清楚問題。
可以給mysql建個定時任務
一、查看event是否開啟
show variables like '%sche%';
開啟event_scheduler
set global event_scheduler =1;
二、建立預存程序test
CREATE PROCEDURE test () BEGIN update userinfo set endtime = now() where id = '110'; END;
三、建立event e_test
create event if not exists e_test on schedule every 30 second on completion preserve do call test();
每隔30秒將執行預存程序test
關閉事件任務
alter event e_test ON COMPLETION PRESERVE DISABLE;
開戶事件任務
alter event e_test ON COMPLETION PRESERVE ENABLE;
這個邏輯交給java處理比較好。
使用Java定時任務.
import java.util.Timer; import java.util.TimerTask;
用java解決 @schedule(cron = "0 0 0 * ?" ) 每天零點執行一次定時任務上面0和星號之間少了一個星號,連打兩個星號會被屏蔽
我傾向於用腳本去操作,但是mysql也提供了自身的存貯過程,其本質也是些簡單的mysql語句去執行的。
我在網路上查了 預存程序的優缺點,然後你想想腳本的優缺點,用哪種方式,自行選擇吧! 儲存過程優缺點
1.mysql自己的任務調度Event2.java 應用層的任務調度,推薦QuartZ3.寫腳本,Node,python均可,利用作業系統的任務調度
試試看quartz,不知道對你是不是有幫助
可以給mysql建個定時任務
一、查看event是否開啟
開啟event_scheduler
二、建立預存程序test
三、建立event e_test
每隔30秒將執行預存程序test
關閉事件任務
開戶事件任務
這個邏輯交給java處理比較好。
使用Java定時任務.
用java解決
@schedule(cron = "0 0 0 * ?" ) 每天零點執行一次定時任務
上面0和星號之間少了一個星號,連打兩個星號會被屏蔽
我傾向於用腳本去操作,但是mysql也提供了自身的存貯過程,其本質也是些簡單的mysql語句去執行的。
我在網路上查了 預存程序的優缺點,然後你想想腳本的優缺點,用哪種方式,自行選擇吧!
儲存過程優缺點
1.mysql自己的任務調度Event
2.java 應用層的任務調度,推薦QuartZ
3.寫腳本,Node,python均可,利用作業系統的任務調度
試試看quartz,不知道對你是不是有幫助