需要刪除資料的表名:t_req_log
建表sql
createtable
`t_req_log` (
`id`
bigint(20) not
null
auto_increment,
`host`
varchar(200) default
null
,`time`
datetime
default
null
,primary
key(`id`),
) engine
=innodb default charset=utf8;
1.查詢是否開啟事件排程
show variables like'event_scheduler
';
2.開啟事件排程
臨時:set global event_scheduler = 1;
永久:vim /etc/my.cnf
event_scheduler=on
3.建立p_del_count儲存過程。
接收傳入引數30並執行刪除資料操作,刪除大於30天的資料。
dropprocedure
ifexists
p_del_count;
create
procedure p_del_count(in `date_inter` int
) begin
delete
from t_req_log where (to_days(now()) - to_days(from_unixtime(unix_timestamp(time),'
%y%m%d
'))) >=
date_inter;
end;
4.建立定時任務
從2018-05-15 00:00:00起每一天執行一次p_del_count這個儲存過程,並將引數傳給
p_del_count儲存過程
drop event ifexists
e_del_t_req_log;
create
event e_del_t_req_log
on schedule every 1
day starts '
2018-05-15 00:00:00
'on completion not preserve enable do call p_del_count (30);
5.檢視已有定時事件任務
show events;
6.事件的開啟與關閉
開啟某事件:alter evente_del_t_req_logon completion preserve enable;
關閉某事件:alter evente_del_t_req_logon completion preserve disable;
mysql用event設定定時任務
mysql設定定時任務 需求 mysql資料庫裡面做個定時任務自動每天建立一張表。1.檢視是否開啟event與開啟event show variables like sche 若未開啟,set global event scheduler 1 2.建立儲存過程 每天建立乙個名為 test 年月日的表...
mysql 中定時任務event的建立
以前一直使用quartz建立定時任務,但是有時候定時任務一多,總感覺在某個時間段內集中進行定時任務會對tomcat造成比較大的壓力 對不起,這是我猜的。所以後來就發現mysql 在5.1之後新增了事件排程器 event scheduler 而且如果是定時呼叫乙個儲存過程,會比使用quartz簡單的多...
mysql 定時任務 生效 mysql定時任務
1.檢視是否開啟定時策略 show variables like event sche 若出現如下圖,則此時是關閉狀態 開啟定時策略 重啟無效 set global event scheduler 1 則需要在配置檔案my.ini的設定 重啟有效 mysqld event scheduler on ...