mysql 事件及定时器
一、語法:
create event
event_name ?
on schedule
[on completion[not] preserve]
[enable|desable]
[comment 'comment']
do???????????????????
[要執行的sql語句]
?
說明:
1.event_name
???
??? 聲明事件名稱
2.on schedule
?
有兩種設定計劃任務的方式:
單次計劃任務:
??? at 時戳
重復的計劃任務(基于事件的定時器)
??? every時間的數量 時間單位 [starts時戳][ends 時戳]
??? starts:事件開始執行時間;ends:事件停止執行時間;
??? 在兩種計劃任務中,時戳可以是任意的TIMESTAMP 和DATETIME 數據類型,要求提供的是將來的時間(大于CURRENT_TIMESTAMP),而且小于Unix時間的最后時間(等于或小于'2037-12-31 23:59:59')。
?
??? 時間單位是關鍵詞:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND
3.[on completion[not] preserve]
?
completion當單次計劃任務執行完畢后或當重復性的計劃任務執行到了ENDS階段時,通過聲明preserve來設定事件是否被drop掉。
4.[enable|desable]
?
ENABLE 開啟事件
DESABLE 關閉事件
5.comment
?
注釋
6.do sql_statement
?
執行的sql語句
?
?
?
二、設置事件調度器
查看是否event_scheduler是否開啟
mysql> show variables like '%event%';
注:value = ON 說明事件調度器已經開啟;
?
設置開啟
mysql> set global event_scheduler=on;
三、例子
創建表:
create table school
(
id int primary key not null auto_increment,
schoolname varchar(20)
)
?
創建單次執行任務事件:
create event myevent
on schedule at '2016-12-815:53:00'
on completion not preserve
enable
do
insert intoschool(schoolname) values('1111');
?
注:報錯 可能是事件已經存在,先執行:drop eventif exists myevent
再執行事件。
?
創建定時器即 重復執行任務事件1:
create event myevent
on schedule every 1 second
-- 每秒執行一次;還可以設置成:year,month,day,hour,minute
starts '2016-12-8 17:35:00' --開始執行時間
enable
do
insert intoschool(schoolname) values('1111');
?
創建定時器即 重復執行任務事件2:
create event myevent
on schedule every 1 second
starts '2016-12-8 17:47:00'
ends current_timestamp +interval 1 minute
-- 一分鐘后停止執行;結束時間必須大于開始時間
on completion not preserve
-- 任務停止執行后,drop掉事件
enable
do
insert intoschool(schoolname) values('1111');
總結
以上是生活随笔為你收集整理的mysql 事件及定时器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12.2 做一个读书的读书人——《逆袭大
- 下一篇: mysql trim()_MySQL t