日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MySOL中Event用法詳解,零基礎快速入門必看

一、Event概念

Event即事件,也是一種數(shù)據(jù)庫對象,又叫時間觸發(fā)器或者事件調度器,與triggers的事件觸發(fā)不同,tiggers會因為update、delete、insert等事件觸發(fā),而event類似與linux crontab計劃任務,用于時間觸發(fā),當?shù)搅嗽O定執(zhí)行時間時,系統(tǒng)會觸發(fā)相關的SQL語句或存儲過程,相當于我們給存儲過程創(chuàng)建了定時任務。

▲ 適用范圍:對于每隔一段時間就有固定需求的操作,如創(chuàng)建表,刪除數(shù)據(jù)、插入數(shù)據(jù),修改數(shù)據(jù)等操作,可以使用event來處理。

▲ 例如:在每月的1日凌晨1點自動創(chuàng)建下個月需要使用的三張表;在每月第一天時查詢匯總上月商品的銷售匯總信息,然后將這些信息插入到匯總信息表里。這些情況都可以使用event來處理。

二、Event創(chuàng)建語法

CREATE Event [IF NOT EXISTS] event_name -- 創(chuàng)建使用create event

ON SCHEDULE schedule -- on schedule 什么時候來執(zhí)行,執(zhí)行頻率

[ON COMPLETION [NOT] PRESERVE] -- 調度計劃執(zhí)行完成后是否還保留

[ENABLE | DISABLE] -- 是否開啟事件,默認開啟

[COMMENT 'comment'] -- 事件的注釋

DO event_body; -- 這個調度計劃要做什么?

創(chuàng)建語法中[ ]里的內容是可以省略的。

[IF NOT EXISTS]如果新建的event_name系統(tǒng)里不存在,則創(chuàng)建一個新的,如果已經(jīng)存在了,則提示已經(jīng)存在。如果省略的話,系統(tǒng)里不存在新的event_name則創(chuàng)建成功,如果已經(jīng)存在了,會保存。

[ON COMPLETION [NOT] PRESERVE 如果帶了not當事件執(zhí)行完后,就自動刪除,不保留事件。如果不加not事件執(zhí)行完會保留下來,該項不寫的時候,默認是執(zhí)行完事件保留下來。

[ENABLE | DISABLE]ENABLE時事件開啟,當?shù)搅耸录?zhí)行時間,系統(tǒng)會自動執(zhí)行event_body里定義的語句,如果設置的是DiSABLE則事件關閉,到了執(zhí)行時間,事件也不會執(zhí)行。該項沒有設置時,默認為事件開啟。

[COMMENT 'comment']comment是事件注釋,對事件進行解釋說明。

event_body事件主體,可以是單條DML語句,可以是多條DML語句,多條時需要寫在begin……end之間,也可調用存儲過程。

三、執(zhí)行時間說明

執(zhí)行時間說明:

1.單次計劃:

在2019年2月1日4點執(zhí)行一次

on schedule at '2019-02-01 04:00:00’

2. 重復計劃

on schedule every 1 second 每秒執(zhí)行一次

on schedule every 1 minute 每分鐘執(zhí)行一次

也可以是hour、day、week、month、year

3.指定開始時間的重復計劃

每天在20:00:00執(zhí)行一次

on schedule every 1 day starts ‘2021-6-16 20:00:00'

四、如何查看Event

● 查看有哪些event

Show events; 或者通過Select * from information_schema.events;

● 查看event具體內容

SHOW CREATE EVENT event_name1;

● 刪除event

DROP EVENT event_name;

● 修改event

可以先刪除,再重新創(chuàng)建
也可以ALTER EVENT event_name …… 省略號后邊的內容和創(chuàng)建event一樣

五、實例

先創(chuàng)建一個表student_bak,用此表來備份student表的數(shù)據(jù);

create table student_bak select * from student;

接著,我們創(chuàng)建存儲過程student_bak_pro,用來備份student表中的最新數(shù)據(jù)

CREATE DEFINER=`root`@`localhost` PROCEDURE `student_bak_pro`()
BEGIN
insert into student_bak select * from student t where not EXISTS (select * from student_bak t1 where t1.sno=t.sno);
COMMIT;
END

然后,我們再創(chuàng)建event,讓系統(tǒng)每3秒自動執(zhí)行以下存儲過程student_bak_pro

CREATE Event student_bak_event
ON SCHEDULE every 3 second
ON COMPLETION PRESERVE
DO call student_bak_pro();

最后,我們給student表新插入三條條數(shù)據(jù),然后我們去觀察student_bak表里數(shù)是不是也插入了最新的數(shù)據(jù)。

INSERT INTO student VALUES (2008063, 'Penqun63', '男', 12, '2009-02-24', NULL),(2008064, 'Penqun63', '男', 12, '2009-02-24', NULL),
(2008065, 'Penqun65', '男', 12, '2009-02-24', NULL);

標題名稱:MySOL中Event用法詳解,零基礎快速入門必看
當前URL:http://www.5511xx.com/article/djsihdo.html