DELETE FROM table WHERE created_on < DATE_SUB(CURDATE(),INTERVAL 3 DAY);
CURDATE() 返回當前日期mysql
CURNOW() 返回當前datetimesql
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
切換到想要應用的數據庫,不然存儲過程會應用到默認數據庫中code
查看存儲過程事件
select * from mysql.proc where db=’數據庫名’;
使用存儲過程it
call del_data()
開啓事件調度器event
SET GLOBAL event_scheduler = ON;
建立事件table
create event del_event on schedule EVERY 1 day STARTS '2019-3-28 00:00:00' do call del_data()
從明天的零點開始,每隔一天執行del_data存儲過程