實踐參考
mysql5.1
版本開始引進event概念,mysql 中的事件(event:時間觸發器)是用於執行定時或週期性的任務,類似linux中的crontab,但是後者只能精確到分鐘,事件可以精確到秒。通過單獨或呼叫儲存過程使用,在某一特定的時間點,觸發相關的sql語句或儲存過程。事件由乙個特定的執行緒來管理的,也就是所謂的事件排程器,但是事件不能直接呼叫。
mysql中排程器event_scheduler負責呼叫事件,也就是由全域性變數event_scheduler的狀態決定,它預設是off, 一般是off。
show variables like
'%event_scheduler%';+
-----------------+-------+
| variable_name |
value|+
-----------------+-------+
| event_scheduler |
off|
+-----------------+-------+
開啟的方法:set global event_scheduler=1
,關閉當然就是賦值為0了。
建立事件
delimiter $$
– set global event_scheduler = on$$
– required for event to execute but not create 事件執行但不建立所需
– event 後面是事件名稱
– definer = 是定義人
create
/[definer = ]/ event
spring_boot_building
.`test
on schedule
/* uncomment the example below you want to use /
/ 取消注釋下面要使用的示例 */
– scheduleexample 1: run once
– 例子1:執行一次
– at 『yyyy-mm-dd hh:mm.ss』/current_timestamp
– 使用 at 關鍵字執行一次,使用時把上面注釋放開即可
– scheduleexample 2: run at intervals forever after creation
– 例子2:每隔一段時間執行一次
– every 1 [hour|month|week|day|minute|…]
– 使用 every 關鍵字執行一次,使用時把上面注釋放開即可
– scheduleexample 3: specified start time, end time and interval for execution
– 例子3:指定開始時間、結束時間,在時間區間內每隔一段時間執行一次
– 使用 every 關鍵字指定時間間隔
/*every 1 [hour|month|week|day|minute|…]
– 使用 starts 關鍵字指定開始時間
starts current_timestamp/『yyyy-mm-dd hh:mm.ss』
– 使用 ends 關鍵字指定結束時間
ends current_timestamp/『yyyy-mm-dd hh:mm.ss』 */
– [on completion [not] preserve]
– 可選項,預設是on completion not preserve 即計畫任務執行完畢後自動drop該事件;on completion preserve則不會drop掉。
– [enable | disable]
– 設定event的狀態,預設enable:表示系統嘗試執行這個事件。disable:關閉該事情,可以用alter修改
– [comment 『comment』]
– 可選項,comment 用來描述event;相當注釋,最大長度64個位元組。 do
begin
/* 在這裡寫sql語句或者呼叫儲存過程 */
(sql_statements)
end$$
delimiter
;上面的英文注釋已經寫得很清楚,我這裡把英文翻譯一下。
檢視事件
檢視當前所在庫的事件:
show events;
啟用和禁用alter event event_name disable
;alter event event_name enable
;
event_name:事件名稱
刪除事件
drop event [
ifexists
] event_name
event_name:事件名稱
我們來寫乙個每隔5秒中就向table1
插入當前時間的事件
資料庫如下:
我們主要看table1
這張表。
sql 如下:
delimiter $$
create
definer
=current_user eventspring_boot_building
.
insert_currenttime_in_table1
on schedule
– 每隔5秒中就向table1
插入當前時間
every 5
second
on completion preserve
enable
comment
『每隔5秒中就向table1
插入當前時間的事件』 do
begin
insert
into
table1
values
(null
,now()
);end$$
delimiter
;執行此sql之後,發現事件建立成功:
事件正常執行
實踐參考mysql5.1
版本開始引進event概念,mysql 中的事件(event:時間觸發器)是用於執行定時或週期性的任務,類似linux中的crontab,但是後者只能精確到分鐘,事件可以精確到秒。通過單獨或呼叫儲存過程使用,在某一特定的時間點,觸發相關的sql語句或儲存過程。事件由乙個特定的執行緒來管理的,也就是所謂的事件排程器,但是事件不能直接呼叫。
mysql中排程器event_scheduler負責呼叫事件,也就是由全域性變數event_scheduler的狀態決定,它預設是off, 一般是off。
show variables like
'%event_scheduler%';+
-----------------+-------+
| variable_name |
value|+
-----------------+-------+
| event_scheduler |
off|
+-----------------+-------+
開啟的方法:set global event_scheduler=1
,關閉當然就是賦值為0了。
建立事件
delimiter $$
mysql中的事件語法 MySQL中的事件
事件是什麼?mysql5.1版本開始引進event概念,mysql 中的事件 event 時間觸發器 是用於執行定時或週期性的任務,類似linux中的crontab,但是後者只能精確到分鐘,事件可以精確到秒。通過單獨或呼叫儲存過程使用,在某一特定的時間點,觸發相關的sql語句或儲存過程。事件由乙個特...
Mysql中的事件
一組sql集,用來執行定時任務,跟觸發器很像,都是被動執行的,事件是因為時間到了觸發執行,而觸發器是因為某件事件 增刪改 觸發執行 檢視是否開啟 如果顯示off,則輸入以下語句開啟 首先 新建user表 table structure for user drop table if exists us...
MySQL 簡述MySQL中的事件Event
事件 一組sql集,用來執行定時任務,跟觸發器很像,都是被動執行的。事件是因為時間到了觸發執行,而觸發器是因為某件事件 增刪改 觸發執行。1.查詢mysql的事件功能狀態 想要使用mysql的事件功能,前提是確保服務開啟。查詢指令如下 select event scheduler 或show var...