MySQL之事件(Event)详解⽬录
1 创建事件
1.1 检查数据库事件是否开启
如果 event_scheduler 等于 ON 表⽰开启
SELECT @@event_scheduler;
SHOW VARIABLES LIKE 'event_scheduler';
1.2 开启任务(事件)java正则表达式匹配手机号码
set global event_scheduler=1;
-- 或者
SET GLOBAL event_scheduler = ON;
-- 或者
在myf中的[mysqld]部分添加 event_scheduler=ON 然后重启mysql。
1.3 关闭事件
SET GLOBAL event_scheduler = OFF;
1.4 语法
CREATE
[DEFINER = { user | CURRENT_USER }]
webservice的协议EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body;
1.4.1 参数取值
schedule和interval参数可取的值:
-- schedule参数可取的值:
java现在的就业前景schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval
cracks是什么意思[STARTS timestamp [+ INTERVAL interval] ...]
[ENDS timestamp [+ INTERVAL 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}
1.4.2 参数定义
DEFINER: 定义事件执⾏的时候检查权限的⽤户。
ON SCHEDULE schedule: 定义执⾏的时间和时间间隔。
ON COMPLETION [NOT] PRESERVE: 定义事件是⼀次执⾏还是永久执⾏,默认为⼀次执⾏,即NOT PRESERVE:计划任务执⾏完毕后⾃动drop该事件,ON COMPLETION PRESERVE则不会drop掉。
ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器⾃动同步主上的创建事件的语句的话,会⾃动加上DISABLE ON SLAVE。
COMMENT 'comment': 定义事件的注释。
1.5 开启事件
alter event event_name(事件名称) ENABLE;
1.6 关闭事件
alter event event_name(事件名称) DISABLE;
1.7 删除事件
DROP EVENT [IF EXISTS] event_name(事件名称);
1.8 案例
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`t1` datetime DEFAULT NULL,
`id2` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8
mysql面试题详解事件⼀: 每隔三秒钟插⼊⼀条数据
-- 创建⼀个每隔3秒往test表中插⼊⼀条数据的事件
CREATE EVENT IF NOT EXISTS e_test_1 ON SCHEDULE EVERY 3 SECOND
ON COMPLETION PRESERVE
DO INSERT INTO test(id,t1) VALUES(NULL,NOW());
事件⼆:清空test表数据
-- 创建⼀个10分钟后清空test表数据的事件
CREATE EVENT IF NOT EXISTS e_test_2
ON SCHEDULE
AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
DO TRUNCATE TABLE test;
事件三:call调⽤存储过程
-- 调⽤存储过程
-- 创建过程
CREATE PROCEDURE pro_test()
BEGIN
INSERT INTO test(id,t1,id2) VALUES(NULL,NOW(),'1000000');
END
-
织梦行云谱子- 调⽤过程
CREATE EVENT IF NOT EXISTS e_test_3 ON SCHEDULE EVERY 3 SECOND ON COMPLETION PRESERVE
DO CALL pro_test();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论