MySQL-事件总结
是什么?事件是一组SQL集合,简单说就是mysql中的定时器,时间到了就执行。
一:查询事件变量
如果查询不到变量,说明数据库版本过低,不支持事件。
SHOW VARIABLES LIKE 'event_scheduler';
#开启事件,如果想要每次重启数据库服务后,事件仍然生效需要在mysql.ini文件中加入event_scheduler = ON; 的语句
SET GLOBAL event_scheduler = ON;
#查询数据库所有创建的事件
SELECT * FROM mysql.event;
#启用事件任务
ALTER EVENT event1 ENABLE;
#禁用事件任务
ALTER EVENT event1 DISABLE;
#查看事件的定义
SHOW CREATE EVENT event1;
二:创建事件语法
CREATE
[DEFINER = { USER | CURRENT_USER }]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE `schedule`
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body; `schedule`:
AT TIMESTAMP [+ 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:定义事件执行的时候检查权限的用户。
#event_name:表示事件名称
#SCHEDULE:表示触发点,AT timestamp一般用于只执行一次。EVERY interval一般用于周期性执行,可以设定开始时间和结束时间。
#ON COMPLETION PRESERVE:表示任务执行之后仍保留
#ON COMPLETION NOT PRESERVE:表示任务执行完成后不保留
#ENABLE|DISABLE:表示设置启用或者禁止这个事件。
#COMMENT:添加注释
三:测试表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR(200) NOT NULL COMMENT '收货人',
`address` VARCHAR(100) NOT NULL COMMENT '收货地址',
`addtime` DATETIME NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8; #清空表
TRUNCATE TABLE `user`;
四:测试存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS `ADD_USER`$$
CREATE PROCEDURE `ADD_USER`()
BEGIN
INSERT INTO `user`(NAME, address,ADDTIME) VALUES('AT','AT',NOW());
END$$
DELIMITER ;
五:事件案列
#1.每隔3秒
DROP EVENT IF EXISTS `event1`;
DELIMITER ;;
CREATE EVENT `event1` ON SCHEDULE EVERY 3 SECOND ON COMPLETION PRESERVE DISABLE COMMENT ''
DO
BEGIN
INSERT INTO `user`(NAME, address,ADDTIME) VALUES('test1','test1',NOW());
END
;;
DELIMITER ;
#2.每天几点几分
DROP EVENT IF EXISTS `event2`;
DELIMITER ;;
CREATE EVENT `event2` ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(),INTERVAL 3 HOUR),INTERVAL 30 MINUTE) ON COMPLETION PRESERVE ENABLE COMMENT ''
DO
BEGIN
CALL ADD_USER();
END
;;
DELIMITER ;
#9号凌晨1点
SELECT DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-9 DAY),INTERVAL 1 HOUR);
#1分钟后
SELECT NOW()+INTERVAL 1 MINUTE;
#凌晨3点
SELECT DATE_ADD(CURDATE(),INTERVAL 3 HOUR);
#凌晨3点30分
SELECT DATE_ADD(DATE_ADD(CURDATE(),INTERVAL 3 HOUR),INTERVAL 30 MINUTE);
MySQL-事件总结的更多相关文章
- mysql 事件
经常要周期性的执行某一个命令或者SQL语句.mysql事件,mysql的版本是5.1以上. 首先要查看事件是否开启了, SHOW VARIABLES LIKE 'event_scheduler'; S ...
- MySQL事件 Events
MySQL事件 Events 一.关键字: EVENT 二.语法: CREATE EVENT? [IF NOT EXISTS ] //如果不存在则创建 event_name? ON SCHED ...
- Mysql事件学习
出自:http://blog.chinaunix.net/uid-20639775-id-3323098.html Mysql事件学习 在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQ ...
- mysql 事件调度器
1.mysql事件调度器,也就是计划任务,计划做某事,有两种方式: 2.在某个时间点做某事,AT TIMESTAMP [+ INTERVAL INTERVAL] 某个时间点加上偏移. 3.定时地做某事 ...
- mysql事件调度器
#查看mysql事件调度器是否开启 SHOW VARIABLES WHERE Variable_name = 'event_scheduler'; #开启mysql事件调度器功能 SET GLOBAL ...
- MySQL事件【转载】
在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQL语句.对于linux系统熟悉的人都知道linux的cron计划任务,能很方便地实现定期运行指定命令的功能.Mysql在5.1以后推出了 ...
- MySQL事件调度器event的使用
Q:假设,有一个需求,希望在某一个时刻系统调用一个begin end执行一下:十分钟以后执行一下begin end.亦或有一个需求,每个多长时间周期性执行begin end.那么这个时候该怎么办呢? ...
- mysql事件关闭解决办法
Mysql 事件event_scheduler是OFF 开启 Event Scheduler,以下4种方式等效 SET GLOBAL event_scheduler = ON; SET @@globa ...
- 修改MySQL事件
MySQL允许您更改现有事件的各种属性. 要更改现有事件,请使用ALTER EVENT语句,如下所示: ALTER EVENT event_name ON SCHEDULE schedule ON C ...
- MySQL事件的先后
今天闲聊之时 提及MySQL事件的执行,发现一些自己之前没有注意的细节 如果在执行事件过程中,如果insert的存储过程发生意外 会如何 USE iot2; CREATE TABLE aaaa (ti ...
随机推荐
- Spring Transaction Propagation
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11530611.html REQUIRED behavior Spring REQUIRED behav ...
- umeditor word文档图片粘贴-自动上传到服务器
图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码 目前限chrome浏览器使用,但是项目要求需要支持所有的浏览器,包括Windows和macOS系统.没有办 ...
- java 随机读写访问流及seek方法
package stream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOExceptio ...
- java File类的使用以及一些函数
package file; import java.io.File; import java.io.IOException; import org.junit.jupiter.api.Test; /* ...
- Delphi界面篇之ListView控件
//增加项或列(字段) ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; ListView1.Columns.Add; ...
- LOJ 2997 「THUSCH 2017」巧克力——思路+随机化+斯坦纳树
题目:https://loj.ac/problem/2977 想到斯坦纳树.但以为只能做 “包含一些点” 而不是 “包含一些颜色” .而且不太会处理中位数. 其实 “包含一些颜色” 用斯坦纳树做也和普 ...
- element table 通过selection-change选中的索引删除
<el-table :row-class-name="tableRowClassName" @selection-change="handleSelectionCh ...
- php 封装原生数据导入的方法(csv文件格式)
//前端---部分代码 <form class="form-inline" style="margin-top: 20px" method="p ...
- nb哒LCA
求欧拉序每log分一块每段找最小值共n/log块然后建st表,复杂度n/log*log = n每块记前后缀最小过至少一块很好求对于在一块的:由于欧拉序的标号前后只会相差1所以序列种类只有2^k种k&l ...
- css 样式小窍门
css 样式小窍门 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...