MySQL 定時刪除資料

來源:互聯網
上載者:User

標籤:mysql event 預存程序 定時刪除


預存程序:

1. MySQL 5.0 以後開始支援預存程序。

2. 我們常用的SQL語句在執行的時候需要先編譯,然後執行,而預存程序是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中(因而執行速度比較快),使用者通過制定存錯過程的名字並給定參數來調用執行它。


Event事件:

1. MySQL 5.1以後開始引入event概念;

2. event 即“時間觸發器”,通過在特定時間觸發SQL語句或者預存程序執行。



MySQL 定時刪除資料實現方法:mysql預存程序 + event事件

1. 寫預存程序


DELIMITER //

create procedure del_data(IN `date_inter` int) //建立預存程序, IN表示需要傳入一個參數

begin

delete from EPISODE_CCM_GENERAL_INFO where time < date_sub(curdate(), interval date_inter day);

delete from EPISODE_CEM_GENERAL_INFO where time < date_sub(curdate(),interval date_inter day);

end //

DELIMITER ;

格式注意:

a. 這裡的DELIMITER // :

DELIMITER是關鍵字,這句的作用是聲明分隔字元為//,由於MySQL預設以“;”為分隔字元,如果沒有聲明新的分隔字元,編譯器會把預存程序當做SQL語句進行處理,預存程序的編譯過程就會報錯。所以事先聲明當前段的分隔字元是‘//‘, 預存程序不會執行這些代碼。DELIMITER ; 是將分隔字元還原。

b. IN 輸入參數,OUT輸出參數,INOUT表示輸入輸出參數

c. 預存程序體的開始與結束用begin,end來標識;

d. curdate()返回當前的日期,e.g. 2015-06-18

    curtime()返回目前時間,e.g. 14:12:09

    now() 返回當前日期和時間,e.g. 2015-06-18 14:12:09

    date_sub()函數,從日期減去指定的時間間隔;

e. 查看預存程序命令:show procedure status where db = "dbname";

f. 刪除預存程序命令:drop procedure;

g. delete語句表示刪除date_inter天前的資料。


2. 寫event事件

create event del_event  

on schedule 

EVERY 1 day  

STARTS ‘2015-05-11 13:00:00‘  

ON COMPLETION  PRESERVE ENABLE  

do  call del_data(90)


a. 查看是否開啟event:

    show variables like "event_scheduler";

b. 開啟event: (1: on 0 :off)

    set global event_scheduler = 1;

c. on schedule 計劃任務,有兩種方式:

    i). at 時間戳記,用來完成單次的計劃任務;

    ii). every 時間,用來完成重複的計劃任務;時間可以使用:year, month, day, hour, minute,seconds等。

d. on completion [not] preserve 

    on completion 表示當這個事件不會再發生的時候,preserve表示事件執行完畢後不會被drop掉。

    enable /disable表示開啟/關閉事件。

    可以通過alter event event_name enable/disable變更事件的開啟或關閉;

e. call del_data是調用預存程序;

f. show events 查看事件;













MySQL 定時刪除資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.