创建和使用MySQL计划事件
查看事件调度程序线程的状态:
SHOW PROCESSLIST;
要启用和启动事件调度程序线程命令:
SET GLOBAL event_scheduler = ON;
禁用和停止事件调度程序线程:
SET GLOBAL event_scheduler = OFF;
创建和计划新事件,请使用CREATE EVENT语句,如下所示:
CREATE EVENT [IF NOT EXIST] event_name
ON SCHEDULE schedule
DO
event_body
让我们详细地查看上面的语句。
- 首先,在
CREATE EVENT子句之后指定事件名称。 事件名称在数据库模式中必须是唯一的。 - 其次,在
ON SCHEDULE子句之后放置一个调度。 如果事件是一次性事件,则使用语法:AT timestamp [+ INTERVAL];如果事件是重复事件,则使用EVERY子句:EVERY interval STARTS timestamp [+INTERVAL] ENDS timestamp [+INTERVAL]。 - 第三,将SQL语句放在
DO关键字后面。要注意的是,可以在事件的主体内调用存储过程。如果有复合SQL语句,可以将它们放在BEGIN END块中。
首先,使用CREATE TABLE语句创建一个名为messages的新表,如下所示:
CREATE TABLE IF NOT EXISTS messages (
id INT PRIMARY KEY AUTO_INCREMENT,
message VARCHAR(255) NOT NULL,
created_at DATETIME NOT NULL
);
第二步,使用CREATE EVENT语句创建事件:
CREATE EVENT IF NOT EXISTS test_event_01
ON SCHEDULE AT CURRENT_TIMESTAMP
DO
INSERT INTO messages(message,created_at)
VALUES('测试MySQL事件执行(1)',NOW());
第三步,查看messages表; 就会看到表中有1条记录。这意味着创建事件时执行它。
SELECT * FROM messages;
要显示数据库模式的所有事件,请使用以下语句:
SHOW EVENTS FROM studymysql;
例子:
该事件在创建完成1分钟后执行,并且在执行后不会删除。
CREATE EVENT test_event_02
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
ON COMPLETION PRESERVE
DO
INSERT INTO messages(message,created_at)
VALUES('测试MySQL事件执行(2)',NOW());
以下语句创建每隔一分钟执行一次并且在创建时间后1小时内过期的重复事件:
CREATE EVENT test_event_03
ON SCHEDULE EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
ENDS CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO
INSERT INTO messages(message,created_at)
VALUES('测试MySQL重复事件',NOW());
删除MySQL事件
要删除现有事件,请使用DROP EVENT语句,如下所示:
DROP EVENT [IF EXIST] event_name;
例如,要删除test_event_03事件,请使用以下语句:
DROP EVENT [IF EXIST] test_event_03;
待续...................
参考链接: 创建和使用MySQL计划事件
https://www.aliyun.com/jiaocheng/mysql?spm=5176.100033.1.3.31152197VX5mlP
创建和使用MySQL计划事件的更多相关文章
- 如何开启mysql计划事件
如何开启mysql计划事件 (2012-07-26 12:21:23) 转载▼ 标签: mysql 事件计划 it 分类: MySQL 首先在sql中查询计划事件的状态:SHOW VARIABLES ...
- 【转】mysql 计划事件
转自:http://www.cnblogs.com/c840136/articles/2388512.html MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件.定时任务机制,在 ...
- mysql计划任务每天定时执行
代码例子:CREATE EVENT `course_listener` ON SCHEDULE EVERY DAY STARTS '2012-07-18 00:00:00' ON COMPLETION ...
- mysql数据库事件调度(Event)
mysql中的事件调度器可以定时对数据库增加,删除和执行操作,相当于数据库中的临时触发器,与Linux系统中的执行计划任务一样,这样就可以大大降低工作量. 1.开启事件调度器 [root@node1 ...
- Mysql数据库事件使用与示例
1 事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在 ...
- mysql计划任务
这两天一直遇见mysql计划任务的案例,今天我就给大家分享一个真是的实例: 1.创建计划任务的语法: create event 任务名称 on schedule at 时间周期 starts '年- ...
- mysql的事件
mysql的事件定时器的使用: SHOW VARIABLES LIKE 'event_scheduler' --查询event_scheduler开启状态 SET GLOBAL event_sched ...
- Mysql event事件用法
公司的数据库需要进行定期删除数据,需要用到mysql event事件,学习和梳理这块知识. 1查看event是否开启 SHOW VARIABLES LIKE 'event_scheduler'; 2开 ...
- Azure 元数据服务:适用于 Windows VM 的计划事件(预览)
计划事件是 Azure 元数据服务中的其中一个子服务. 它负责显示有关即将发生的事件(例如,重新启动)的信息,使应用程序可以为其做准备并限制中断. 它可用于所有 Azure 虚拟机类型(包括 PaaS ...
随机推荐
- 动态规划之----我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
利用动态规划,一共有n列,若从左向右放小矩形,有两种放置方式: 第一种:横着放,即占用两列.此时第二行的前两个空格只能横着放,所有,总的放置次数变为1+num(2*(n-2)),其中2*(n-2)代表 ...
- HDU 1814 Peaceful Commission
2-SAT,输出字典序最小的解,白书模板. //TwoSAT输出字典序最小的解的模板 //注意:0,1是一组,1,2是一组..... #include<cstdio> #include&l ...
- jsonp的简单实现
jsonp: function(url, data, callback){ if( wfQuery.isFunction(data) ){ callback = data; data = {}; } ...
- 快速部署Python应用:Nginx+uWSGI配置详解
在PHP里,最方便的就是deployment了,只要把php文件丢到支持PHP的路径里面,然后访问那个路径就能使用了:无论给主机添加多少PHP应用,只要把目录改好就没你的事了,完全不用关心php-cg ...
- linux下GBK->UTF-8文件编码批量转换脚本
find default -type d -exec mkdir -p utf/{} \;find default -type f -exec iconv -f GBK -t UTF-8 {} -o ...
- psy & vr
技术指标及应用法则:PSY和VR 一.PSY(Psychologial Line) 1. PSY的参数 2. PSY的应用法则 二.VR(Volume Ratio) 1. VR的参数 2. VR的 ...
- java字符编码,字符转码
编码:String->byte[]; str.getBytes(charsetName) 解码:byte[]->String; new String(byte[],charsetName) ...
- Ubuntu新建用户
新建用户的命令是useradd,修改密码是passwd,如下: sudo useradd linc sudo passwd linc 但是问题出现了,home目录下并没有相对应的linc目录. 原来u ...
- Sonya and Problem Wihtout a Legend
Sonya and Problem Wihtout a Legend Sonya was unable to think of a story for this problem, so here co ...
- telnet关闭tomcat
telnet localhost 8005然后输入SHUTDOWN即可关闭tomcat 前提是8005端口已打开