mysql怎么開啟事件 mysql 事件什么時(shí)候觸發(fā)

linuxmysql怎么啟動(dòng)定時(shí)任務(wù)

mysql的定時(shí)任務(wù)一般用event(事件)來完成,觸發(fā)器無法完成。一、通過mysql的命令行客戶端來完成

成都創(chuàng)新互聯(lián)是專業(yè)的錯(cuò)那網(wǎng)站建設(shè)公司,錯(cuò)那接單;提供成都做網(wǎng)站、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行錯(cuò)那網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

1、set global event_scheduler =1; //開啟event_scheduler

執(zhí)行這個(gè)語句如果出現(xiàn),可在mysql的配置文檔中設(shè)置[mysqld]段中添加 event_scheduler=ON

如果重啟mysql;這種情況下依然出錯(cuò),Error Code: 1290. The MySQL server is running with the --event-scheduler=DISABLED

or --skip-grant-tables option so it cannot execute this statement,這個(gè)錯(cuò)誤是說啟動(dòng)服務(wù)器時(shí)如果指定了--skip-grant-tables選項(xiàng),則event_scheduler則自動(dòng)被設(shè)置為DISABLED。命令行或配置文件的設(shè)置都會(huì)被覆蓋。建議重現(xiàn)安裝mysql或是修改啟動(dòng)參數(shù)(在系統(tǒng)服務(wù)中指定)。

查看event_scheduler狀態(tài):show status like '%event%'; 或SELECT @@event_scheduler;

2、CREATE PROCEDURE Mypro() //創(chuàng)建存儲(chǔ)過程

BEGIN

update userinfo SET endtime = now() WHERE id = '155';

END;

3、創(chuàng)建event My_enevt,每隔三十秒執(zhí)行一次

create event if not exists e_test

on schedule every 30 second

on completion preserve

do call Mypro();

4、關(guān)閉事件

alter event e_test ON COMPLETION PRESERVE DISABLE;

5、開啟事件

alter event e_test ON COMPLETION PRESERVE ENABLE;

語法:

CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION

[NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT 'comment'] DO sql_statement;

schedule: AT TIMESTAMP [+ INTERVAL INTERVAL] | EVERY INTERVAL [STARTS TIMESTAMP]

[ENDS TIMESTAMP] INTERVAL: quantity {YEAR | QUARTER | MONTH | DAY | HOUR |

MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND |

HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

MYSQL定時(shí)執(zhí)行事件

mysql要實(shí)現(xiàn)定時(shí)執(zhí)行sql語句就要用到Event

具體操作如下:

先看看看event 事件是否開啟

show variables like '%sche%';

如沒開啟,則開啟。需要數(shù)據(jù)庫超級權(quán)限

set global event_scheduler =1;

創(chuàng)建存儲(chǔ)過程 update_a (注:就是你要執(zhí)行的sql語句)

mysql create procedure update_a() update a set a.y_avg=(select avg(b.youhao) from b where a.a_id=b.a_id);

創(chuàng)建一個(gè)定時(shí)任務(wù):event e_updateA

mysql create event if not exists e_updateA

- on schedule every 60 second ---設(shè)置60秒執(zhí)行一次

- on schedule at date_add(now(),interval 1 minute) ---在一分鐘后執(zhí)行

- on completion preserve

- do call update_a(); ---執(zhí)行update_a()存儲(chǔ)過程

創(chuàng)建Event之后,sql語句就定時(shí)執(zhí)行一次。

關(guān)閉事件任務(wù)

mysql事件沒執(zhí)行

1、命令查看是否開啟event_scheduleSHOWVARIABLESLIKE'event_scheduler'。

2、使用命令開啟臨時(shí)開啟,重啟mysql又還原回去。

3、修改配置永久修改配置文件的[mysqld]部分加上event_scheduler=ON。

如何查看mysql定時(shí)器的事件

mysql如何查看定時(shí)器有沒有執(zhí)行

1.查看是否開啟evevt與開啟evevt。

1.1、MySQL evevt功能默認(rèn)是關(guān)閉的,可以使用下面的語句來看evevt的狀態(tài),如果是OFF或者0,表示是關(guān)閉的。

show VARIABLES LIKE '%sche%';

1.2、開啟evevt功能

SET GLOBAL event_scheduler = 1;

2.創(chuàng)建定時(shí)器的過程

2.1、創(chuàng)建測試表test

drop table if exists test;

create table test

(

id int(11) not null auto_increment primary key,

time datetime not null

) engine=innodb default charset=utf8;

2.2、創(chuàng)建evevt要調(diào)用的存儲(chǔ)過程test_proce

delimiter //

drop procedure if exists test_proce//

create procedure test_proce()

begin

insert into test(time) values(now());

end//

delimiter ;

2.3、開啟evevt(要使定時(shí)起作用,MySQL的常量GLOBAL event_scheduler必須為on或者是1)

執(zhí)行show variables like 'event_scheduler';查看evevt是否開啟;

若沒開啟執(zhí)行set global event_scheduler='on';

2.4、創(chuàng)建事件test_event(其作用:每隔一秒自動(dòng)調(diào)用test_proce()存儲(chǔ)過程)

drop event if exists test_event;

create event test_event

on schedule every 1 second

on completion preserve disable

do call test_proce();

2.5、開啟事件test_event

當(dāng)前標(biāo)題:mysql怎么開啟事件 mysql 事件什么時(shí)候觸發(fā)
標(biāo)題鏈接:http://muchs.cn/article12/doscggc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、自適應(yīng)網(wǎng)站、軟件開發(fā)ChatGPT、電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)