您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在Mysql中刪除指定時間值之前的記錄,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
首先刪除2天以前記錄的SQL語句(webserver_monitormemory為表名,time為時間字段):
delete From webserver_monitormemory where DATE(time) <= DATE(DATE_SUB(NOW(),INTERVAL 2 day));
創建存儲過程:
DELIMITER // CREATE PROCEDURE autodel() -> BEGIN -> delete From webserver_monitormemory where DATE(time) <= DATE(DATE_SUB(NOW(),INTERVAL 2 day)); -> END -> // DELIMITER ;
創建事件,定制每天執行autodel的存儲過程:
CREATE EVENT `event_auto_del_memorydata` ON SCHEDULE EVERY 1 DAY STARTS '2017-11-20 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO CALL autodel();
開啟事件計劃(調度器)4種方法。鍵值1或者ON表示開啟;0或者OFF表示關閉:
SET GLOBAL event_scheduler = 1; SET @@global.event_scheduler = 1; SET GLOBAL event_scheduler = ON; SET @@global.event_scheduler = ON;
查看當前是否已開啟事件計劃(調度器)3種方法:
SHOW VARIABLES LIKE 'event_scheduler'; SELECT @@event_scheduler; SHOW PROCESSLIST;?
事件開啟與關閉:
ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE ENABLE; //開啟某事件 ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE DISABLE; //關閉某事件
這個是最簡單但是也是最重要的,我們要手動的啟動這個定時器,要不然是沒法工作的。
ALTER EVENT event_time_clear_data ON COMPLETION PRESERVE ENABLE;
另外,關閉定時器的代碼是:
ALTER EVENT event_time_clear_data ON COMPLETION PRESERVE DISABLE;
刪除存儲過程:
DROP PROCEDURE pro_clear_data;
刪除Event:
DROP EVENT IF EXISTS event_time_clear_data1
關于怎么在Mysql中刪除指定時間值之前的記錄就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。