MySQL 簡述MySQL中的事件Event

2021-09-09 05:36:22 字數 3083 閱讀 5477

事件:一組sql集,用來執行定時任務,跟觸發器很像,都是被動執行的。事件是因為時間到了觸發執行,而觸發器是因為某件事件(增刪改)觸發執行。

1.查詢mysql的事件功能狀態

想要使用mysql的事件功能,前提是確保服務開啟。查詢指令如下:

select @@event_scheduler;

或show variables like '%event_scheduler%';

2.設定mysql的事件功能狀態鍵值1或者on表示開啟;0或者off表示關閉。指令如下:

set global event_scheduler = 1;

set global event_scheduler = on;

set @@global.event_scheduler = 0;

set @@global.event_scheduler = off;

注意:雖然使用set global event_scheduler = on語句開啟了事件,但是每次重啟電腦。或重啟mysql服務後,會發現,事件自動關閉(event_scheduler=off),所以想讓事件一直保持開啟,需要修改配置檔案,讓mysql服務啟動的時候開啟事件,只需要在my.ini配置檔案的[mysqld]部分加上event_scheduler=on 即可,如下:

編輯mysql的配置檔案my.cnf,在[mysqld]中新增下面一行**

[mysqld]

event_scheduler=on

重啟mysql服務,執行命令檢視事件服務是否開啟,指令如下

service mysqld restart --event_scheduler=on

3.建立mysql的事件事件型別分為兩種,乙個是間隔觸發,另乙個是特定事件觸發。

事件引數說明:

a. definer:建立者。

b. on completion [not] preserve :表示當事件不會再發生的情況下,刪除事件(注意特定時間執行的事件,如果設定了該引數,執行完畢後,事件將被刪除,不想刪除的話可以設定成on completion preserve);

c. enable:表示系統將執行這個事件;

d. on schedule * :表示執行時間,頻率。頻率可為year,quarter,month,day,hour,minute,week,second,year_month,day_hour,day_minute,day_second,hour_minute,hour_second,minute_second等情況。

當為on completion preserve 的時候,如果event到期了,event會被disable,但是該event還是會存在;

當為on completion not preserve的時候,如果event到期的時候,該event會被自動刪除掉。

4.檢視mysql的事件

show events;
5.對指定mysql的事件進行開關

開啟某事件:alter event event_name on completion preserve enable;

關閉某事件:alter event event_name on completion preserve disable;

drop table if exists table_timestamp;

create table table_timestamp

( message_pk bigint not null auto_increment,

message_content varchar(99),

/* 建立時間不可為空*/

createtime timestamp not null default current_timestamp comment '建立時間' ,

primary key (message_pk)

);第一種型別:每隔一分鐘插入一條資料

drop event if exists event_minute;

delimiter $$

create definer=root@localhost event event_minute

on schedule every 1 minute starts '2019-01-14 17:00:00'

on completion not preserve enable

do begin

insert into table_timestamp(message_content) values('message內容-1');

end $$

delimiter ;

注意:starts只是從這時間起執行緒開始執行,比如說現在時間是2019-01-14 17:00:00執行此sql語句,要等2019-01-14 17:01:00才開始生效)

第二種型別:特定時間插入一條資料,如'2019-01-14 18:00:00'

drop event if exists event_at;

delimiter $$

create definer=root@localhost event event_at

on schedule at '2019-01-14 18:00:00'

on completion not preserve enable

do begin

insert into table_timestamp(message_content) values('指定時間-message內容-1');

簡述mysql應用 MYSQL使用簡述

您可能感興趣的話題 mssql 一 連線mysql。1 例1 連線到本機上的mysql。首先在開啟dos視窗,然後進入目錄 mysqlbin,再鍵入命令mysql uroot p,回車後提示你輸密碼,如果剛安裝好mysql,超級使用者root是沒有密碼的,故直接回車即可進入到mysql中了,mysq...

簡述mysql事件作用 MYSQL使用簡述

1 如果你打命令時,回車後發現忘記加分號,你無須重打一遍命令,只要打個分號回車就可以了。也就是說你可以把乙個完整的命令分成幾行來打,完後用分號作結束標誌就ok。2 你可以使用游標上下鍵調出以前的命令。但以前我用過的乙個mysql舊版本不支援。我現在用的是mysql 3.23.27 beta win。...

MySQL配置簡述

mysql配置簡述 1 2 配置檔案 在mysql目錄下建立配置檔案my.ini,這個配置檔案可以根據my default.ini稍加修改後生成。3 開啟服務 使用管理員方式開啟cmd,cd到了mysql目錄下的bin資料夾,e mysql 5.6.24 winx64 bin。輸入mysqld in...