mysql定時刪除資料
阿新 • • 發佈:2020-12-01
刪除三天前的資料的sql
DELETE FROM table WHERE created_on < DATE_SUB(CURDATE(),INTERVAL 3 DAY);
CURDATE() 返回當前日期
CURNOW() 返回當前datetime
INTERVAL 是mysql間隔值,用法為INTERVAL expr unit。INTERVAL 3 DAY表示三天的間隔
DATE_SUB(start_date,INTERVAL expr unit);
寫一個儲存過程
儲存過程相當於mysql的函式,它是儲存在資料庫伺服器中的一組sql語句,通過呼叫這個函式的名稱來執行這些sql語句命令。
DELIMITER // create procedure del_data() BEGIN DELETE FROM table WHERE created_on < DATE_SUB(CURDATE(),INTERVAL 3 DAY); END// DELIMITER ;
DELIMITER是分割符的意思,宣告儲存過程前將"//"宣告為分隔符,這樣儲存過程中的“;”才不會被當作分隔符處理。宣告結束後再還原分隔符。
儲存過程也可以帶引數,儲存過程名(引數)
在宣告儲存過程前要先用use database_name切換到想要應用的資料庫,否則儲存過程會應用到預設資料庫中
檢視以及使用儲存過程
檢視儲存過程
select * from mysql.proc where db=’資料庫名’;
使用儲存過程
call del_data()
寫一個事件
開啟事件排程器
SET GLOBAL event_scheduler = ON;
建立事件
create event del_event on schedule EVERY 1 day STARTS '2019-3-28 00:00:00' do call del_data()
從明天的零點開始,每隔一天執行del_data儲存過程
原文連結:https://www.cnblogs.com/luozx207/p/10607696.html
參考連結:https://blog.51cto.com/6300167/2435356