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 ...
随机推荐
- Linux中的uniq命令(去掉重复项,输出重复项)
ls /bin /usr/bin | sort | uniq | less 上面这条命令的实际效果是: 获得 ls /bin /usr/bin 的 output 将上述 output 进行 sort ...
- 报错——userdel: user hhh is currently used by process 9218
报错 userdel: user hhh is currently used by process 9218 [root@centos71 ~]# useradd hhh [root@centos71 ...
- pyCharm和解释器下载安装
参考:(mac) 安装流程和注意: http://blog.csdn.net/limin2928/article/details/69267184 解释器下载地址: https://www.pytho ...
- 【HDOJ6582】Path(最短路图,最小割)
题意: n,m<=1e4,c<=1e9 思路: #include<bits/stdc++.h> using namespace std; typedef long long l ...
- [20190727NOIP模拟测试9]单(single) 题解(树上dp)
啊啊啊啊啊啊啊啊考场上差一点就A掉了5555 千里之堤溃于蚁穴……鬼知道最后一步那么显然的柿子我为什么没考虑用上…… 观察数据范围可知,出题人期望我们想出一个$O(n)$的做法 当然也有可能是$O(n ...
- html中ul,ol和li的区别
ul是无序列表,全称是unordered list,先来个例子: ●张三 ●李四 ●王二 ●刘五 ol是有序列表 ,全称是ordered list,同样举个例子: 1.张 ...
- iPad如何恢复
iPad在有网络连接的情况下,可以通过iCloud进行恢复. 没有连接WiFi的情况下,只能通过USB连接才能恢复. ①下载最新版本的iTunes:https://support.apple.com/ ...
- SercletConfig 详解
ServletConfig:从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对本servlet有效,一个servlet的ServletConfig对象不能被另一个servlet访问 ...
- CentOS下Java的安装与环境配置
网上的文章很多,但我还是不知道下次需要看谁的,或是给朋友推荐谁的,索性我都整理出来,方便下次需要的时候能很快的看到或是给朋友链接.两种安装方式:解压安装和包安装 1.安装前检查: 因为安 ...
- ubuntu+qt+opencv
linux下Qt+OpenCv环境的搭建: https://blog.csdn.net/yaowangII/article/details/84303124 1.qt:https://blog.csd ...