在專案中,經常需要對一些過期的資料進行處理。這類資料如果業務複雜,推薦在**裡處理。如果邏輯相對簡單,推薦在mysql資料庫層面處理。這時候,我們就用到了mysql的定時器功能。例子:
select * from tiezi_tab t
where t.datastatus < 3
and t.typeflag=3
and t.endtime < now()
;#5117
select * tiezi_tab t
where id=5117
;#檢視資料庫版本
select version()
;#檢視定時器功能是否開啟(mysql預設是關閉這個功能的)
show variables like '%sche%'
;#開啟定時器功能
set global event_scheduler = 1
;#2.2、建立evevt要呼叫的儲存過程test_proce
drop procedure if exists tiezi_close_proce
;delimiter //
create procedure tiezi_close_proce()
begin
update tiezi_tab t
set t.datastatus=3
where t.datastatus!=3 and t.datastatus!=4 and t.typeflag=3 and t.endtime < now();
end //
delimiter ;
#2.4、建立事件test_event(其作用:每隔一秒自動呼叫test_proce()儲存過程)
drop event if exists tiezi_close_event
;create event tiezi_close_event
on schedule every 60 second
on completion preserve disable
do call tiezi_close_proce()
;#2.5、開啟事件test_event
alter event tiezi_close_event on completion preserve enable
;#2.6、關閉事件test_event
alter event tiezi_close_event on completion preserve disable
;#3.檢視自己建立的event
#如果要檢視更加詳細的資訊,你需要root使用者的授權,如果是你自己的資料庫你可以用下面語句檢視
select * from mysql.event
;
Mysql 定時任務的關閉
正常情況下,在windows系統安裝完mysql 後,會定時在系統出現彈窗,出現類似如下的資訊 start initialization mysql installer is running in community mode.initializing product requirements lo...
MySQL定時任務的開啟
檢視event是否開啟 show variables like event select event scheduler show processlist 如果看到event scheduler為on或者processlist中顯示有event scheduler的資訊說明就已經開啟了事件。如果顯示...
mysql 定時任務 生效 mysql定時任務
1.檢視是否開啟定時策略 show variables like event sche 若出現如下圖,則此時是關閉狀態 開啟定時策略 重啟無效 set global event scheduler 1 則需要在配置檔案my.ini的設定 重啟有效 mysqld event scheduler on ...