一、mysql資料庫預設不開啟定時策略
檢視是否啟動:
showvariableslike'%event_sche%』
臨時設定開啟定時任務(重啟後恢復預設設定)
setglobal event_scheduler=1;
永久設定任務開啟(mysql資料庫啟動時預設開啟,設定完需重啟)
在mysql目錄的bin下,找到my.ini檔案,在[mysqld] 下新增:event_scheduler=on
二、建立儲存過程(將sql語句放置begin和end中間)
use test; (test為資料庫名稱)
delimiter //
create procedure test_proce()
begin
insert into weuse(name,created_at,updated_at) values('hello',now(),now());
end//
delimiter ;
三、建立event定時任務
create event second_event
on schedule every 1 second (此處意思為每秒執行一次,minute為分鐘,day為天)
on completion preserve disable
do calltest_proce();(test_proce為第二步建立的儲存過程名稱)
四、檢視所有定時任務
select event_name,event_definition,interval_value,interval_field,statusfrom information_schema.events;
五、啟動或關閉定時任務
alter event second_event on completion preserve enable;//開啟定時任務
alter event second_event on completion preserve disable;//關閉定時任務
週期執行–關鍵字 every
單位有:second,minute,hour,day,week(周),quarter(季度),month,year
如:在具體某個時間執行–關鍵字 at
如:
如:on schedule at current_timestamp()+interval 5 day //5天後執行
on schedule at current_timestamp()+interval 10 minute //10分鐘後執行
on schedule at '2016-10-01 21:50:00' //在2023年10月1日,晚上9點50執行
檢視事件on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month //5天後開始每天都執行執行到下個月底
on schedule every 1 day ends current_timestamp()+interval 5 day //從現在起每天執行,執行5天
mysql> show events
mysql> show full events
mysql> select * from mysql.event;
mysql> select * from information_schema.events;
2> 修改事件 (alter event)
alter event event_name
[on schedule schedule]
[rename to new_event_name]
[on completion [not] preserve]
[comment ''comment'']
[enable | disable]
[do sql_statement]
1) 臨時關閉事件
alter event e_test disable;
2) 開啟事件
alter event e_test enable;
3) 將每天清空 test 表改為 5 天清空一次:
alter event e_test
on schedule every 5 day;
3> 刪除事件 (drop event)
語法很簡單,如下所示:
drop event [if exists] event_name
例如刪除前面建立的 e_test 事件
drop event e_test;
當然前提是這個事件存在,否則會產生 error 1513 (hy000): unknown event 錯誤,因此最好加上 if exists
drop event if exists e_test;
mysql 定時任務 生效 mysql定時任務
1.檢視是否開啟定時策略 show variables like event sche 若出現如下圖,則此時是關閉狀態 開啟定時策略 重啟無效 set global event scheduler 1 則需要在配置檔案my.ini的設定 重啟有效 mysqld event scheduler on ...
mysql 定時任務
檢視event是否開啟 複製 如下 show variables like sche 將事件計畫開啟 複製 如下 set global event scheduler 1 建立儲存過程test 複製 如下 create procedure test begin update examinfo set...
mysql定時任務
show variables like event scheduler 開啟定時任務 set global event scheduler on 定時更新 on completion not preserve 表示當事件不會再發生的情況下,刪除事件 注意特定時間執行的事件,如果設定了該引數,執行完畢...