自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySOL中Event用法詳解,零基礎(chǔ)快速入門必看

數(shù)據(jù)庫 MySQL
Event即事件,也是一種數(shù)據(jù)庫對象,又叫時間觸發(fā)器或者事件調(diào)度器.

一、Event概念

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

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

▲ 例如:在每月的1日凌晨1點(diǎn)自動創(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] -- 調(diào)度計(jì)劃執(zhí)行完成后是否還保留

[ENABLE | DISABLE] -- 是否開啟事件,默認(rèn)開啟

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

DO event_body; -- 這個調(diào)度計(jì)劃要做什么?

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

[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當(dāng)事件執(zhí)行完后,就自動刪除,不保留事件。如果不加not事件執(zhí)行完會保留下來,該項(xiàng)不寫的時候,默認(rèn)是執(zhí)行完事件保留下來。

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

[COMMENT 'comment']comment是事件注釋,對事件進(jìn)行解釋說明。

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

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

執(zhí)行時間說明:

1.單次計(jì)劃:

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

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

2. 重復(fù)計(jì)劃

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

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

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

3.指定開始時間的重復(fù)計(jì)劃

每天在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具體內(nèi)容

SHOW CREATE EVENT event_name1;

● 刪除event

DROP EVENT event_name;

● 修改event

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

五、實(shí)例

先創(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ù),然后我們?nèi)ビ^察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);
責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2021-03-23 17:21:48

Java編程開發(fā)

2021-03-11 11:50:07

kafka服務(wù)器Java

2017-09-18 10:48:06

深度學(xué)習(xí)零基礎(chǔ)入門

2020-04-28 10:40:54

Python開發(fā)工具

2024-01-16 08:09:28

PythonMongoDB數(shù)據(jù)存儲

2009-11-18 14:53:59

PHP Session

2024-12-06 10:51:10

Hadoop大數(shù)據(jù)框架

2016-11-25 13:05:18

2017-09-21 15:31:49

2022-03-15 09:31:17

ESLint工作原理前端

2012-02-22 10:33:36

Wi-Fi

2021-08-27 07:13:52

UI計(jì)算機(jī)圖形

2011-07-29 11:28:58

iPhone開發(fā)

2021-04-30 11:33:09

Python變量數(shù)據(jù)

2020-06-10 10:50:48

C++開發(fā)編程

2024-05-16 09:26:11

PythonpyWinAuto工具

2025-02-17 10:09:54

2025-02-17 13:00:00

ChatGPT大模型AI

2020-04-09 14:02:33

NginxHttps前端

2020-11-20 09:36:43

Java對象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號