#创建用户表
CREATE TABLE `wzm_user` (
`id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
`user_name` char(10) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '用户名',
PRIMARY KEY (`id`)
)
#创建一个用户信息记录表
CREATE TABLE wzm_user_log(
id BIGINT NOT NULL auto_increment,
user_name_old VARCHAR(20) ,
user_name_new VARCHAR(20),
PRIMARY KEY(id)
);
#写一个修改用户名添加日志的触发器
delimiter ;;
CREATE TRIGGER add_user_log AFTER INSERT ON wzm_user FOR EACH ROW
BEGIN
INSERT INTO wzm_user_log (user_name_old,user_name_new)
VALUES(new.user_name,NULL);
END ;;
delimiter ;
#用户表新增记录
INSERT INTO wzm_user_log (user_name_old)
VALUES(NOW());
SELECT * FROM wzm_user_log
#创建一个存储过程用于新增用户日志
delimiter ;;
CREATE PROCEDURE add_user()
BEGIN
INSERT INTO wzm_user_log (user_name_old)
VALUES(NOW());
END ;;
delimiter ;
#调用添加用户日志的储存过程
CALL add_user();
#删除 已经存在的定时任务
DROP EVENT IF EXISTS add_user_event;
#变换结束符
delimiter ;;
#创建一个定时任务定时增加
CREATE EVENT add_user_event
#'2018-04-12 14:54:00' 开始 每30秒一次 注意start' 加s 时间戳需要大于当前时间
ON SCHEDULE EVERY 30 SECOND STARTS TIMESTAMP '2018-04-12 15:25:00'
#ON COMPLETION参数表示"当这个事件不会再发生的时候",
#即当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。
#而PRESERVE的作用是使事件在执行完毕后不会被Drop掉,建议使用该参数,以便于查看EVENT具体信息。
ON COMPLETION PRESERVE
DO
BEGIN
CALL add_user();
END ;;
delimiter ;
#查看定时任务
SHOW EVENTS ;
#开启定时任务
SET GLOBAL event_scheduler = ON;
#查看结果
SELECT * FROM wzm_user_log
--
-- 查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%';
-- 将事件计划开启 : SET GLOBAL event_scheduler = 1;
-- 将事件计划关闭 : SET GLOBAL event_scheduler = 0;
-- 关闭事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
-- 开启事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
-- 查看事件任务 : SHOW EVENTS ;
CREATE TABLE `wzm_user` (
`id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
`user_name` char(10) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '用户名',
PRIMARY KEY (`id`)
)
#创建一个用户信息记录表
CREATE TABLE wzm_user_log(
id BIGINT NOT NULL auto_increment,
user_name_old VARCHAR(20) ,
user_name_new VARCHAR(20),
PRIMARY KEY(id)
);
#写一个修改用户名添加日志的触发器
delimiter ;;
CREATE TRIGGER add_user_log AFTER INSERT ON wzm_user FOR EACH ROW
BEGIN
INSERT INTO wzm_user_log (user_name_old,user_name_new)
VALUES(new.user_name,NULL);
END ;;
delimiter ;
#用户表新增记录
INSERT INTO wzm_user_log (user_name_old)
VALUES(NOW());
#此时触发器触发 会自动添加日志记录
SELECT * FROM wzm_user_log
#创建一个存储过程用于新增用户日志
delimiter ;;
CREATE PROCEDURE add_user()
BEGIN
INSERT INTO wzm_user_log (user_name_old)
VALUES(NOW());
END ;;
delimiter ;
#调用添加用户日志的储存过程
CALL add_user();
#删除 已经存在的定时任务
DROP EVENT IF EXISTS add_user_event;
#变换结束符
delimiter ;;
#创建一个定时任务定时增加
CREATE EVENT add_user_event
#'2018-04-12 14:54:00' 开始 每30秒一次 注意start' 加s 时间戳需要大于当前时间
ON SCHEDULE EVERY 30 SECOND STARTS TIMESTAMP '2018-04-12 15:25:00'
#ON COMPLETION参数表示"当这个事件不会再发生的时候",
#即当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。
#而PRESERVE的作用是使事件在执行完毕后不会被Drop掉,建议使用该参数,以便于查看EVENT具体信息。
ON COMPLETION PRESERVE
DO
BEGIN
CALL add_user();
END ;;
delimiter ;
#查看定时任务
SHOW EVENTS ;
#开启定时任务
SET GLOBAL event_scheduler = ON;
#查看结果
SELECT * FROM wzm_user_log
--
-- 查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%';
-- 将事件计划开启 : SET GLOBAL event_scheduler = 1;
-- 将事件计划关闭 : SET GLOBAL event_scheduler = 0;
-- 关闭事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
-- 开启事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
-- 查看事件任务 : SHOW EVENTS ;