事件(event)是mysql在相應的時刻調用的過程式數據庫對象。一個事件可調用一次,也可周期性的啟動,它由一個特定的線程來管理的,也就是所謂的“事件調度器”。事件和觸發器類似,都是在某些事情發生的時候啟動。當數據庫上啟動一條語句的時候,觸發器就啟動了,而事件是根據調度事件來啟動的。由于他們彼此相似,所以事件也稱為臨時性觸發器。事件取代了原先只能由操作系統的計劃任務來執行的工作,而且mysql的事件調度器可以精確到每秒鐘執行一個任務,而操作系統的計劃任務(如:linux下的cron或windows下的任務計劃)只能精確到每分鐘執行一次。
一、開起定時任務
1、定時任務是默認關閉的,value值為on時就是開起狀態;
1
|
show variables like '%event_sche%' ; |
2、開起定時任務
1
|
set global event_scheduler = 1; |
3、關閉定時任務
1
|
set global event_scheduler = 0; |
如果需要長期開起定時任務需要在my.ini中配置 event_scheduler = on
二、通過navicat創建定時任務
1、找到事件
新建一個事件
2、定義是填寫需要運行的sql或者事件、儲存過程。
3、計劃是這個定時任務的運行規則。
計劃中有兩種事件 at和every,every又稱“事件調度器”,一個事件可調用一次,也可周期性的啟動,它由一個特定的線程來管理的。
這里設置的就是從2020-08-06 12:00:00 開始每1天執行一次。
點擊預覽sql可以查看創建定時任務。
4、這里跟大家準備了很多列子理解這個設置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
1. 在創建事件myevent1小時后執行,執行一條更新 create event myevent on schedule at current_timestamp + interval 1 hour do update myschema.mytable set mycol = mycol + 1; 2.2014年3月20日12點整清空test表: create event e_test on schedule at timestamp '2014-03-20 12:00:00' do truncate table test.aaa; 3.5天后開啟每天定時清空test表: create event e_test on schedule every 1 day starts current_timestamp + interval 5 day do truncate table test.aaa; 4.每天定時清空test表,5天后停止執行 create event e_test on schedule every 1 day ends current_timestamp + interval 5 day do truncate table test.aaa; 5.5天后開啟每天定時清空test表,一個月后停止執行: create event e_test on schedule every 1 day starts current_timestamp + interval 5 day ends current_timestamp + interval 1 month do truncate table test.aaa; 6.每天定時清空test表(只執行一次,任務完成后就終止該事件): create event e_test on schedule every 1 day on completion not preserve do truncate table test.aaa; [ on completion [ not ] preserve]可以設置這個事件是執行一次還是持久執行,默認為 not preserve。 |
三、關閉、啟動、別名、移動、刪除event
修改定時任務alter,修改和創建唯一不一樣的是第一個單詞創建是create,修改為 alter。
1
2
|
alter event myevent ... 具體修改內容 |
臨時關閉某個event
1
|
alter event myevent disable; |
開啟某個event
1
|
alter event myevent enable; |
別名某個event
1
2
|
alter event olddb.myevent rename to newdb.myevent; |
將myevent從olddb庫移動到newdb庫
1
2
|
alter event olddb.myevent rename to newdb.myevent; |
刪除event
1
|
drop event [if exists] event_name |
四、查詢event信息
event信息相關表
1
2
|
information_schema.events mysql.event |
查看事件的創建信息
1
|
show create event countsum \g |
查看sem庫的events信息
1
2
|
use sem; show events \g |
到此這篇關于navicat創建mysql定時任務的方法詳解的文章就介紹到這了,更多相關navicat創建mysql定時任務內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/weixin_44325655/article/details/107832554