MYSQL基礎(事件)

2021-07-30 05:00:57 字數 1959 閱讀 2291

1 事件簡介

事件(event)是mysql在相應的時刻呼叫的過程式資料庫物件。乙個事件可呼叫一次,也可週期性的啟動,它由乙個特定的執行緒來管理的,也就是所謂的「事件排程器」。

事件和觸發器類似,都是在某些事情發生的時候啟動。當資料庫上啟動一條語句的時候,觸發器就啟動了,而事件是根據排程事件來啟動的。由於他們彼此相似,所以事件也稱為臨時性觸發器。

事件取代了原先只能由作業系統的計畫任務來執行的工作,而且mysql的事件排程器可以精確到每秒鐘執行乙個任務,而作業系統的計畫任務(如:linux下的cron或windows下的任務計畫)只能精確到每分鐘執行一次。

2 事件的優缺點

優點 一些對資料定時性操作不再依賴外部程式,而直接使用資料庫本身提供的功能。可以實現每秒鐘執行乙個任務,這在一些對實時性要求較高的環境下就非常實用了。

缺點 定時觸發,不可以呼叫。

3 建立事件

一條create event語句建立乙個事件。每個事件由兩個主要部分組成,第一部分是事件排程(event schedule),表示事件何時啟動以及按什麼頻率啟動,第二部分是事件動作(event action ),這是事件啟動時執行的**,事件的動作包含一條sql語句,它可能是乙個簡單地insert或者update語句,也可以使乙個儲存過程或者benin…end語句塊,這兩種情況允許我們執行多條sql。

乙個事件可以是活動(開啟)的或停止(關閉)的,活動意味著事件排程器檢查事件動作是否必須呼叫,停止意味著事件的宣告儲存在目錄中,但排程器不會檢查它是否應該呼叫。在乙個事件建立之後,它立即變為活動的,乙個活動的事件可以執行一次或者多次。

當乙個使用 on completion not preserve 屬性定義的事件最後一次執行後,事件直接就不存在了,不能修改。

檢視:show variables like 』event_scheduler』;

開啟:set global event_scheduler=1;

1 建立事件

create event event_name on schedule **schedule**

do event_body;

at timestamp [+interval interval]…|every interval -- 指定事件執行的時間,可以為某時刻點即timestamp,或某時刻點開始的interval時間後,或者為每隔interval時間執行一次

[starts timestamp [+interval interval]] -- 設定事件開始執行的時間

[ends timestamp [+interval interval]] -- 設定事件終止執行的時間

– 建立乙個事件,用於每分鐘向elog表中插入一條資料「now()、』event』」,該事件從5分鐘後開始並於20分鐘後結束

delimiter //

create event `newevent`

on schedule every 1

minute starts current_timestamp ends current_timestamp + interval

20minute

on completion not

preserve

enable

doinsert

into elog values(now(),'event');;

//

2 修改事件用於修改時間的狀態:alter event event_name ;

3 刪除事件:drop event event_name;

4 檢視事件:show events

mysql 監測事件 MySQL事件 Events

mysql事件 events 一 關鍵字 event 二 語法 create event?if not exists 如果不存在則建立 event name?on schedule schedle on completion not preserve enable desable comment c...

mysql 事件 日誌 Mysql事件監控日誌

建立監控表 create table t event history id int unsigned not null primary key auto increment,dbname varchar 128 not null default cat eventname varchar 128 n...

mysql檢視事件任務內容 MySql事件計畫任務

drop event if exists eve1 delimiter create event eve1 on schedule every 1 second starts now ends now 1 on completion preserve disable dobegin update t...