mysql event使用,用MySQL的Event设置定时任务执行sql语句 | 老疯子

想在每天某个特定时间段定时执行一条sql语句命令,来进行数据库的备份或者更新删除等,可以直接使用MySQL自带的定时任务Event事件来执行操作。需要注意的是Event事件是在MySQL 5.1版本中新增的,还有一点就是确保你有MySQL数据库的root管理权限,因为Event默认是关闭状态需要用root权限开启 下面会给出开启方法。

查看Event事件是否开启

1、查看MySQL是否开启event,执行下面的命令。

SHOW VARIABLESLIKE'event_scheduler';

dac164008b32ef655ec6178ae92be9eb.png

如果显示OFF,说明是关闭状态需要开启。

2、 开启event,使用下面的命令 。

SETGLOBALevent_scheduler = 1;

执行完后再次查看event状态,ON为开启。

811a5e494ad7c1789bcda3dd2914c468.png

Event 事件语法说明

语法

CREATE

[DEFINER = { user|CURRENT_USER}]

EVENT

[IF NOTEXISTS]

event_name

ONSCHEDULE schedule

[ONCOMPLETION [NOT] PRESERVE]

[ENABLE | DISABLE | DISABLE ONSLAVE]

[COMMENT 'string']

DO event_body;

schedule:

ATtimestamp[+ INTERVAL interval] ...

| EVERY interval

[STARTS timestamp[+ INTERVAL interval] ...]

[ENDS timestamp[+ INTERVAL interval] ...]

interval:

quantity {YEAR| QUARTER |MONTH|DAY|HOUR|MINUTE| WEEK |SECOND| YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

语法说明

DEFINER:指定可执行该定时器的MySQL账号,user的格式是’user_name’@’host_name’,CURRENT_USER或CURRENT_USER(),注意,单引号是需要在语句中输入的。如果不指定,默认是DEFINER = CURRENT_USER。

event_name:事件名称,最大64个字符,不区分大小写,MyEvent和myevent是一样的,命名规则和其他MySQL对象是一样的。

ON SCHEDULE schedule: 指定何时执行,下文详细说明。

[ON COMPLETION [NOT] PRESERVE]:可选,preserve是保持的意思,这里是说这个定时器第一次执行完成以后是否还需要保持,如果是NOT PRESERVE,该定时器只执行一次,完成后自动删除事件;没有NOT,该定时器会多次执行,可以理解为这个定时器是持久性的。默认是NOT PRESERVE。

[ENABLE | DISABLE | DISABLE ON SLAVE]:可选,是否启用该事件,ENABLE-启用,DISABLE-禁用,可使用alter event语句修改该状态。DISABLE ON SLAVE是指在主备复制的数据库服务器中,在备机上也创建该定时器,但是不执行。

COMMENT: 注释,必须用单引号括住。

DO event_body:事件要执行的SQL语句,可以是一个SQL,也可以是使用BEGIN和END的复合语句,和存储过程相同。

ON SCHEDULE 事件的执行时间

ON SCHEDULE指定事件何时执行,执行的频率和执行的时间段,有AT和EVERY两种形式。

AT(在指定的时间只执行一次)

AT语法AT timestamp,用于只执行一次事件。执行的时间由timestamp指定,timestamp必须包含完整的日期和时间,即年月日时分秒都要有。可以使用DATETIME或TIMESTAMP类型,或者可以转换成时间的值,例如“2018-01-21 00:00:00”。如果指定是时间是过去的时间,该事件不会执行,并会生成警告。

可以使用CURRENT_TIMESTAMP(当前时间的意思)指定执行时间,这样的话,事件创建成功会立即执行。

如果事件执行的时间是未来的某个时间点,可以使用+ INTERVAL interval指定具体时间。interval有数字(quantity) 和 时间单位(Unit of time)两部分组成,例如:2分10秒后执行,应写为 + INTERVAL ‘2:10’,可用的时间单位有很多,列表如下图:

3e950382abf01dac396d5b06c53ca550.png

AT小例子

1小时后执行该事件。创建名字为myevent的事件,ON SCHEDULE指定时间,DO要执行的sql语句

CREATE

EVENT myevent

ONSCHEDULE

SCHEDULE ATCURRENT_TIMESTAMP+ INTERVAL 1HOUR

DO

UPDATEmyschema.mytableSETmycol = mycol + 1;

Every(每间隔多久执行一次)

如果需要让事件定时执行,使用Every这种方式。注意Every后边没有+ INTERVAL,时间格式和单位和上面的相同。

Every小例子

EVERY 20 second每20秒执行一次

CREATE

EVENT myevent

ONSCHEDULE

EVERY 20 second

DO

UPDATEmyschema.mytableSETmycol = mycol + 1;

EVERY后面可以跟可选的STARTS和ENDS,指定事件开始和结束时间,在这个时间段内,时间定时执行。STARTS和ENDS可同时指定,或者只指定STARTS,或两者都不指定。

更多案例

EVERY 3 MONTH STARTS CURRENT_TIMESTAMP + INTERVAL 1 WEEK 一周以后开始,每隔三个月

EVERY 2 WEEK STARTS CURRENT_TIMESTAMP + INTERVAL ‘6:15’ HOUR_MINUTE 六个小时15分钟以后,每隔两周

EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 30 MINUTE ENDS CURRENT_TIMESTAMP + INTERVAL 4 WEEK 30分钟以后开始,4周后结束,每隔12个小时

例子:每天凌晨执行

use 指定名为WordPress的数据库,在每天凌晨将wp_vod数据表中的,vod_day字段值设为0

use WordPress;

CREATE

EVENT myevent

ONSCHEDULE

EVERY 1 DAYSTARTS '2019-01-01 00:00:00'

DO

updatewp_vodsetvod_day = 0;

删除Event事件

语句很简单 ,后面myevent为事件名

dropevent myevent;

MySQL服务器重启 断电会导致事件关闭

整个服务器重启、断电会导致event事件恢复成默认OFF关闭状态,想解决这个问题,则需要在mysql.ini文件中修改加入event_scheduler = ON;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB设置x为0到10所有数,MATLAB教学_10数值微积分

本文学习视频地址:https://www.bilibili.com/video/av68228488?p10课堂PPT以及本人学习代码已上传。本文学习内容:多项式的微分和积分数值的微分和积分目录多项式的表示方法polyval()polyder()16分钟练习conv()polyint()Numerical Differentiation39分钟…

php header 404 nginx,ThinkPHP在nginx下怎么设置?路由统统404,疯了~

本地用MAMP跑的代码,运行没问题。但是部署到CENTOS 6.8 NGINX服务器上的时候,路由地址都404了![可以访问] http://something.com/API/public/index.php[404] http://something.com/API/public/index.php/consult_add折腾一晚上了。。简直了&a…

php strchr 截断,PHP strchr() 函数

w3school 教程PHP String 函数查找 "world" 在 "Hello world!" 中的第一次超并返回此字符串的其余个别:echo strchr("Hello world!","world");?>运行实例strchr() 函数搜他串在另一字符串中的第一次常该函数是 strstr(…

matlab aic sic,sic是什么意思_sic的翻译_音标_读音_用法_例句_爱词霸在线词典

全部In the mud -- En ange e il mondo ! [ sic ] ( 6 )污泥里 —— Efangoeilmondo! ( 六 )汉英文学 - 围城Fixed - seal & rotational - seal are made of various msterials, SIC, Carbon, Ceramic and can withstand various chemicals.固定环 及 转动环由各种不同材质…

win7卸载oracle12c,Windows7上完全卸载Oracle 12c操作步骤

Windows7上完全卸载Oracle 12c操作步骤1.关闭Oracle所有的服务,按【winR】运行【services.msc】找到所有Oracle开头的服务(OracleVssWriterORCLOracleServiceORCLOracleOraDB12Home1TNSListenerOracleOraDB12Home1MTSRecoveryServiceOracleJobSchedulerORCL),点击停止。2.使用O…

linux怎样扩容目录,Linux系统下对目录扩容的方法介绍

1、现象:日志服务器当初考虑不周,分区划分不太合理:2、目标:将/home磁盘空间缩减 并将新的磁盘分区扩充到/根目录卸载/home分区并压缩分区卸载/home时 提示目标忙,fuser -m /home查看谁用/home时提示没有fuser命令[ro…

linux多线程九宫格,项目实战:Qt九宫格图片资源浏览器(支持window、linux、兼容各国产系统,支持子文件夹,多选,全选,图片预览,行数与列数设置等)...

需求做嵌入式设备,需求九宫格图片资源浏览器:1.设置根目录;2.可拖动;3.可设置列数与行数;4.点击文件夹可以进入文件夹;5.点击图片可以浏览图片;6.支持触摸屏上下拽拖浏览;7.支持长安…

window连接树莓派linux桌面,远程连接Raspberry Pi(树莓派)图形用户界面(X Window)

背景:有的时候,我们希望能远程连接一台linux的图形界面用来管理机器,这里需要用到tightvncserver和xtightvncviewer两个工具我的树莓派的ip是10.141.247.134 另一台机器为作client去链接树莓派的ip为10.141.247.121. 先在树莓派的机器上安装tightvncs…

linux小红帽系统能用微信,小红帽腾讯QQ微信登录版-小红帽腾讯版v1.0.3 安卓版-腾牛安卓网...

小红帽腾讯版是一款专为广大喜爱玩童话类手游的玩家打造的欧美风游戏,这款游戏有着最为精致的游戏画面,黑色风格的童话故事,带领玩家领略不一样的童年世界,给您带来最佳的游戏体验!小红帽腾讯版简介《小红帽》是一款改…

计算机二级c语言2021年重点内容,2021年5月计算机二级C语言试题(总)

一个考生的快乐,不是因为他备考的时间多,而是因为他的选择对。选择考无忧题库,做二级C语言试题,助你备考轻松!二级C语言试题【1】1.若有以下数组说明,则i10;a[a[i]]元素数值是(C)。int a[12]{1,4,7,10,2,5,…

android 图片合成pdf文件,教你怎么把多张图片合成一个pdf文件

当你遇到需要把多张图片合并成一个pdf文件时,你需要怎么做?可能有些朋友会说下载一个pdf格式转换工具,其实不必这么麻烦,你只要把文件上传到在线迅捷pdf转换器,就可以一站式帮你搞定pdf文件的格式转换以及一些常用的功能操作(如p…

华为系统鸿蒙优势,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪

在华为开发者大会上,华为消费业务CEO 余承东,正式发布鸿蒙OS2.0,并宣布华为鸿蒙OS将全面启用全场景生态,并将于2020年12月发布手机版。余承东还表示,明年,华为的智能手机将全面升级,以支持鸿蒙操…

网页自动关机代码HTML,win10系统打开邮件显示网页html源代码如何解决

有不少win10系统用户在打开邮件的时候,发现内容全是显示网页的html源代码,无法看到内容,遇到这样的问题该怎么办呢,通常是自带的"邮件和日历"应用暂时不支持查看HTML格式的邮件,下面给大家分享一下具体的解决…

retrofit 2.0 android 教程,初识Retrofit2.0

Retrofit无疑是当下最流行的Android网络请求框架了,是Square提供的开源产品。官方网站是这样介绍Retrofit的—-A type-safe HTTP client for Android and Java,为Android平台的应用提供一个类型安全的HTTP客户端。Retrofit 是一套注解形式的网络请求封装…

小学生学计算机编程的必要,小学生学编程,真的那么重要吗

原标题:小学生学编程,真的那么重要吗编程简单的说就是告诉计算机要做什么。人类需要将解决问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。计算机是迄…

家用计算机机箱怎么选,DIY装机怎么选择电脑机箱 新手必读的电脑主机箱选购指南...

在这个讲究颜值的时代,对于一些主要外观的外观党来说,内外皆修的机箱也是算重要的。DIY装机怎么选择电脑机箱?下面装机之家小编就来谈下新手必读的电脑主机箱选购指南,对于装机选择机箱困难症的朋友不妨来看看。一、首先要明白自己…

计算机启动应用程序的方法,excel的程序_Excel2010中启动应用程序的三种方法

使用Excel时,需要先启动应用程序,怎么去进行操作启动它?今天,学习啦小编就教大家在Excel2010中启动应用程序的三种方法。Excel2010中启动应用程序的三种步骤如下:1.开始菜单在桌面上,单击“开始”,“所有程…

西安工业学院计算机系王翊,西安文理学院艺术学院

“爱的长歌”声乐教学与实践汇报音乐会——王翊师生音乐会圆满结束6月26日我院第八场“爱的长歌”声乐教学与实践汇报音乐会—王翊师生音乐会圆满结束。音乐会受到老师和同学的一致赞誉。整场音乐会高潮迭起,掌声不断。音乐会的学生由16级音乐表演专业的声乐方向的同…

计算机如何制作U盘启动盘,电脑如何制作U盘启动盘

为什么要制作U盘启动盘?U盘启动盘是什么?今天小编和大家普及一下,什么是U盘启动盘。就是一个简简单单的U盘,经过装机工具软件就变成了一个装有PE镜像文件的U盘,通过这个启动盘可以进入PE系统对电脑进行重装系统。话不多…

c 服务器二次验证码,V5验证官网 - 基础套餐免费 -滑块验证,行为验证,防刷验证 - 文档...

平台对接V5验证前后端对接流程如下图所示:前后端调用时序图对接V5验证分为业务网站后台api对接以及业务前端代码引入两部分。业务网站后台获取验证Token及验证服务器(getToken)用于网站后台定时通过V5控制台刷新获取验证所需要的Token及验证服务器地址。Token有效期…