4. 用mysql起一個定時任務執行存儲過程

1. 建立存儲過程

比如存儲過程是,刪除15天前的數據:

del_half_month_before_data:

DELIMITER //

BEGIN

DECLARE date_string varchar(100);

DECLARE? date_string2 varchar(100);

DECLARE? date_string3 varchar(100);

SELECT DATE_SUB(CURDATE(), INTERVAL 30 DAY) INTO date_string;

SELECT CONCAT(date_string," 00:00:00") INTO date_string2;

SELECT UNIX_TIMESTAMP(DATE(date_string2)) INTO date_string3;

DELETE FROM `mytable` WHERE `timestamp` < date_string3;

END//

查看剛才創建的存儲過程:show create procedure del_half_month_before_data;

執行剛才創建的存儲過程:call del_half_month_before_data();


2. 檢查mysql定時器是否開 & 啟停定時器 & 啟停事件

查看event是否開啟 : SHOW VARIABLES LIKE '%event_sche%'; 或 show variables like 'event_scheduler';

將事件計劃開啟 :SET GLOBAL event_scheduler = 1;? 或 set global event_scheduler=1;

將事件計劃關閉 :SET GLOBAL event_scheduler = 0; 或 set global event_scheduler=1;

關閉事件任務 :ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;

開啟事件任務 :ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;

查看事件任務 : SHOW EVENTS;


3. 定時執行存儲過程,比如每天凌晨1點執行

DROP EVENT IF EXISTS event_del_half_month_before_data;

CREATE EVENT event_del_half_month_before_data on schedule EVERY 1 DAY starts '2017-01-01 01:00:00' do call del_half_month_before_data();


####親測有效,good####

參考:

1. mysql設置定時任務

2. http://blog.csdn.net/s445320/article/details/51897179?_t=t

3. http://www.cnblogs.com/chenpi/p/5137310.html

4. http://blog.sina.com.cn/s/blog_70207ec20101nzf2.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 任務需求:定時執行的任務,調用存儲過程,進行數據遷移。 存儲過程相關總結:(存儲過程的創建 不能伴隨有if exi...
    時待吾閱讀 3,120評論 0 4
  • mysql怎么讓一個存儲過程定時執行查看event是否開啟: show variables like '%sche...
    BigJeffWang閱讀 2,675評論 0 49
  • 轉載自這里 存儲過程簡介 我們常用的操作數據庫語言SQL語句在執行的時候需要要先編譯,然后執行,而存儲過程(Sto...
    杜七閱讀 2,421評論 4 27
  • 夜來偏做尋常夢,天曉自生無限情。 遙想此身多少事,已行世路萬千程。 為誰還得爭先進,對此無須落后名。 本是當時寂寥...
    雪窗_武立之閱讀 445評論 0 8
  • 公元二零一六年九月十六日,喬任梁的名字像病毒爆發在網絡瘋傳。名氣并不大的他一時間上了熱搜榜,出于好奇就咨詢度娘,被...
    黑白鏡閱讀 750評論 7 1