事件:一組sql集,用來執行定時任務,跟觸發器很像,都是被動執行的。事件是因為時間到了觸發執行,而觸發器是因為某件事件(增刪改)觸發執行。
1.查詢mysql的事件功能狀態
想要使用mysql的事件功能,前提是確保服務開啟。查詢指令如下:
2.設定mysql的事件功能狀態鍵值1或者on表示開啟;0或者off表示關閉。指令如下:select @@event_scheduler;
或show variables like '%event_scheduler%';
注意:雖然使用set global event_scheduler = on語句開啟了事件,但是每次重啟電腦。或重啟mysql服務後,會發現,事件自動關閉(event_scheduler=off),所以想讓事件一直保持開啟,需要修改配置檔案,讓mysql服務啟動的時候開啟事件,只需要在my.ini配置檔案的[mysqld]部分加上event_scheduler=on 即可,如下:set global event_scheduler = 1;
set global event_scheduler = on;
set @@global.event_scheduler = 0;
set @@global.event_scheduler = off;
3.建立mysql的事件事件型別分為兩種,乙個是間隔觸發,另乙個是特定事件觸發。編輯mysql的配置檔案my.cnf,在[mysqld]中新增下面一行**
[mysqld]
event_scheduler=on
重啟mysql服務,執行命令檢視事件服務是否開啟,指令如下
service mysqld restart --event_scheduler=on
事件引數說明:
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等情況。
4.檢視mysql的事件當為on completion preserve 的時候,如果event到期了,event會被disable,但是該event還是會存在;
當為on completion not preserve的時候,如果event到期的時候,該event會被自動刪除掉。
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...