mysql定時任務event 清理過期資料

2022-03-12 01:17:26 字數 1553 閱讀 3123

需要刪除資料的表名:t_req_log

建表sql

create

table

`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天的資料。

drop

procedure

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 if

exists

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 ...