關(guān)于Event:mysql5.1版本開始引進(jìn)event概念。event既“時(shí)間觸發(fā)器”,與triggers的事件觸發(fā)不同,event類似與linux crontab計(jì)劃任務(wù),用于時(shí)間觸發(fā)。通過單獨(dú)或調(diào)用存儲過程使用,在某一特定的時(shí)間點(diǎn),觸發(fā)相關(guān)的SQL語句或存儲過程。
首先刪除2天以前記錄的SQL語句(webserver_monitormemory為表名,time為時(shí)間字段):
delete From webserver_monitormemory where DATE(time) = DATE(DATE_SUB(NOW(),INTERVAL 2 day));
創(chuàng)建存儲過程:
DELIMITER //
CREATE PROCEDURE autodel()
-> BEGIN
-> delete From webserver_monitormemory where DATE(time) = DATE(DATE_SUB(NOW(),INTERVAL 2 day));
-> END
-> //
DELIMITER ;
創(chuàng)建事件,定制每天執(zhí)行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();
開啟事件計(jì)劃(調(diào)度器)4種方法。鍵值1或者ON表示開啟;0或者OFF表示關(guān)閉:
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
查看當(dāng)前是否已開啟事件計(jì)劃(調(diào)度器)3種方法:
SHOW VARIABLES LIKE 'event_scheduler';
SELECT @@event_scheduler;
SHOW PROCESSLIST;
事件開啟與關(guān)閉:
ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE ENABLE; //開啟某事件
ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE DISABLE; //關(guān)閉某事件
這個(gè)是最簡單但是也是最重要的,我們要手動的啟動這個(gè)定時(shí)器,要不然是沒法工作的。
ALTER EVENT event_time_clear_data ON
COMPLETION PRESERVE ENABLE;
另外,關(guān)閉定時(shí)器的代碼是:
ALTER EVENT event_time_clear_data ON
COMPLETION PRESERVE DISABLE;
刪除存儲過程:
DROP PROCEDURE pro_clear_data;
刪除Event:
DROP EVENT IF EXISTS event_time_clear_data1
總結(jié)
以上所述是小編給大家介紹的Mysql下自動刪除指定時(shí)間以前的記錄的操作方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- mysql的定時(shí)任務(wù)實(shí)例教程
- Linux下如何實(shí)現(xiàn)Mysql定時(shí)任務(wù)
- 在Windows環(huán)境下使用MySQL:實(shí)現(xiàn)自動定時(shí)備份
- MySQL數(shù)據(jù)庫Event定時(shí)執(zhí)行任務(wù)詳解
- 老生常談mysql event事件調(diào)度器(必看篇)
- mysql中event的用法詳解
- mysql定時(shí)任務(wù)(event事件)實(shí)現(xiàn)詳解