查看event是否开启: show variables like '%sche%'; 
将事件计划开启: set global event_scheduler=1; 
关闭事件任务: alter event e_test ON COMPLETION PRESERVE DISABLE; 
开户事件任务: alter event e_test ON COMPLETION PRESERVE ENABLE;

简单实例. 
创建表 CREATE TABLE test(endtime DATETIME);

创建存储过程test 
CREATE PROCEDURE test () 
BEGIN 
update examinfo SET endtime = now() WHERE id = 14; 
END;

创建event e_test 
CREATE EVENT if not exists e_test 
on schedule every 30 second 
on completion preserve 
do call test();

每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去

1) 首先来看一个简单的例子来演示每秒插入一条记录到数据表

USE test; 
CREATE TABLE aaa (timeline TIMESTAMP); 
CREATE EVENT e_test_insert 
ON SCHEDULE EVERY 1 SECOND 
DO INSERT INTO test.aaa VALUES (CURRENT_TIMESTAMP); 
等待3秒钟后,再执行查询看看:

copyright dedecms

mysql> SELECT * FROM aaa; 
+---------------------+ 
| timeline | 
+---------------------+ 
| 2007-07-18 20:44:26 | 
| 2007-07-18 20:44:27 | 
| 2007-07-18 20:44:28 | 
+---------------------+ 
2) 5天后清空test表:

CREATE EVENT e_test 
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY 
DO TRUNCATE TABLE test.aaa; 
3) 2007年7月20日12点整清空test表:

CREATE EVENT e_test 
ON SCHEDULE AT TIMESTAMP '2007-07-20 12:00:00' 
DO TRUNCATE TABLE test.aaa; 
4) 每天定时清空test表:

CREATE EVENT e_test 
ON SCHEDULE EVERY 1 DAY 
DO TRUNCATE TABLE test.aaa; 
5) 5天后开启每天定时清空test表:

CREATE EVENT e_test 
ON SCHEDULE EVERY 1 DAY 
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY 
DO TRUNCATE TABLE test.aaa; 
6) 每天定时清空test表,5天后停止执行:

CREATE EVENT e_test 
ON SCHEDULE EVERY 1 DAY 
ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY 
DO TRUNCATE TABLE test.aaa; 
7) 5天后开启每天定时清空test表,一个月后停止执行: 本文来自织梦

CREATE EVENT e_test 
ON SCHEDULE EVERY 1 DAY 
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY 
ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH 
DO TRUNCATE TABLE test.aaa; 
[ON COMPLETION [NOT] PRESERVE]可以设置这个事件是执行一次还是持久执行,默认为NOT PRESERVE。 
8) 每天定时清空test表(只执行一次,任务完成后就终止该事件):

CREATE EVENT e_test 
ON SCHEDULE EVERY 1 DAY 
ON COMPLETION NOT PRESERVE 
DO TRUNCATE TABLE test.aaa; 
[ENABLE | DISABLE]可是设置该事件创建后状态是否开启或关闭,默认为ENABLE。 
[COMMENT ‘comment’]可以给该事件加上注释。

三、修改事件(ALTER EVENT) 
ALTER EVENT event_name 
[ON SCHEDULE schedule] 
[RENAME TO new_event_name] 
[ON COMPLETION [NOT] PRESERVE] 
[COMMENT 'comment'] 
[ENABLE | DISABLE] 
[DO sql_statement] 
1) 临时关闭事件

ALTER EVENT e_test DISABLE; 
2) 开启事件

ALTER EVENT e_test ENABLE; 
3) 将每天清空test表改为5天清空一次:

ALTER EVENT e_test 
ON SCHEDULE EVERY 5 DAY; 
四、删除事件(DROP EVENT)

织梦好,好织梦

语 法很简单,如下所示:

DROP EVENT [IF EXISTS] event_name 
例如删除前面创建的e_test事件

DROP EVENT e_test; 
当然前提是这个事件存在,否则会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS

DROP EVENT IF EXISTS e_test;

create event test 
ON SCHEDULE AT '2007-09-01 12:00:00' + INTERVAL 1 DAY 
on completion not preserve 
do insert into yyy values('hhh','uuu');

解释:从2007-09-01开始,每天对表yyy在12:00:00进行一个插入操作。而且只执行一次(on completion not preserve )

我的计划任务为:

create event sysplan 
ON SCHEDULE AT '2010-05-22 23:00:00' + INTERVAL 1 DAY 
on completion not preserve 
do truncate table bjproj.ae_tmp;

三、通过设定全局变量event_scheduler 的值即可动态的控制事件调度器是否启用。 
查看是否event_scheduler开启mysql> SHOW VARIABLES LIKE '%event%'; 
设置开启mysql> SET GLOBAL event_scheduler=ON; 
四、例子: 
每分钟插入一条日志:DELIMITER //CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1 MINUTE STARTS '2010-12-27 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN INSERT INTO log SET addtime=NOW();END//

织梦好,好织梦

调用存储过程:DELIMITER //CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1 DAY STARTS '2010-00-00 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN CALL user_log_prov();END//

转载于:https://blog.51cto.com/lj1987/1426138

mysql怎么让一个存储过程定时执行相关推荐

  1. oracle 脚本定时,Oracle存储过程定时执行2种方法

    我们今天主要描述Oracle存储过程定时执行方法主要有2种方法,愿在你学习Oracle存储过程定时执行实际操作中以起到抛砖引玉的作用.你如果对其有兴趣的话你就可以点击以下的文章进行观看了. 1.编写s ...

  2. mysql 让一个存储过程定时作业的代码(转)

    1.在mysql 中建立一个数据库 test1 语句:create database test1 2.创建表examinfo create table examinfo( id int auto_in ...

  3. mysql怎么创建自动作业_mysql 让一个存储过程定时作业的代码

    1.在mysql 中建立一个数据库 test1 语句:create database test1 2.创建表examinfo create table examinfo( id int auto_in ...

  4. mysql定时作业_mysql 让一个存储过程定时作业的代码(转)

    1.在mysql 中建立一个数据库 test1 语句:create database test1 2.创建表examinfo create table examinfo( id int auto_in ...

  5. 一个会定时执行的方法

    开发工具与关键技术:Visual Studio.MVC作者:幻奏撰写时间:2019.6.27 我们在做项目的时候不是有一些要我们定时完成的任务吗?很多人应该都会用定时器来完成这个任务.我今天要讲的就是 ...

  6. [windows10]设置任务计划程序定时执行却不执行python脚本的原因

    一.触发器设置的陷阱 只是发现了解决方法,为啥不知道. 在Windows10里面,触发器持续时间不能设置成无限期. 一个可以定时执行的有效设置如下(如果选择为无限期则无法运行): 然而在Windows ...

  7. Ubuntu 定时执行脚本

    一.关于crontab cron是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业.在Ubuntu中,cron是被默认安装并启动的. 二.例子 直接上例子,来看看怎么用. 需求:定时每天 ...

  8. java获取mysql数据定时执行_mysql 事件处理(定时触发某个任务或存储过程等)

    自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系统的计划任 ...

  9. mysql定时任务如何每天0点跑_mysql定时任务,每天的零点执行一个存储过程

    1 前言 利用navicat工具来写存储过程及定时执行,此文章是按照自身经验总结的,仅作为记录使用. 2 步骤 2.1 新建过程 2.2 在函数体写你需要执行的代码 CREATE DEFINER=`r ...

最新文章

  1. python读取目录_Python读取一个目录下所有目录和文件
  2. ASP.NET Core 菜鸟之路:从Startup.cs说起
  3. TF之DD:利用Inception模型+GD算法生成带背景的大尺寸、高质量的Deep Dream图片——五个架构设计思维导图
  4. U3D physics总结
  5. c四舍五入取整函数_学会这8个Excel函数,工作瞬间好轻松!
  6. 【week2】 构建之法 读后感及问题
  7. AtCoder Beginner Contest 084(AB)
  8. linux下的字符设备驱动
  9. 没了珊瑚虫你用谁?八大QQ主流修改版大比拼
  10. Modelsim SE 的下载安装与注册
  11. 高级c语言程序设计视频教程,C语言高级编程视频教程
  12. Kali Linux 如何使用 软件商店
  13. 英语语法之后缀决定词性
  14. 三维地理信息系统空间的可视分析
  15. [bzoj2752]高速公路 题解(线段树)
  16. 邮箱发信量到达上限,发不出邮件,你知道该怎么办吗?
  17. 收敛交叉映射(convergent cross mapping,CCM)滥觞、2012年Science论文方法部分:Detecting Causality in Complex Ecosystems
  18. 23届秋招美团内推推推!开始啦!!
  19. 用python构建多只股票日收益率直方图_用Python分析多股票的投资组合
  20. ros2 foxy 安装gazebo11.0

热门文章

  1. Ubuntu16.04 Linux上比较好用的截图工具Flameshot
  2. linux如何去掉目录背景颜色
  3. LeetCode 626. Exchange Seats
  4. python读取有中文文件时的报错处理
  5. activity的使用(八):生命周期
  6. 在VS.NET中使用clickonce技术开发Winform程序
  7. STM32F407之搭建工程
  8. 云如何让App开发更简单?
  9. 移动端事件 、zepto移动端事件
  10. [PHP源码阅读]trim、rtrim、ltrim函数