sql语法很多,是一门完整语言。这里仅仅实现一个功能,不做深入研究。

目标:定时更新表或者清空表。

案例:曾经做过定时清空位置信息表的任务。(然而,当时并未考虑服务器挂掉后的情况)

本次测试:每5s更新表字段+1

1.prepare

创建一个表:

DROP TABLE IF EXISTS `test_sche`;
CREATE TABLE `test_sche` (
`id` int(11) NOT NULL,
`counts` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of test_sche
-- ----------------------------
INSERT INTO `test_sche` VALUES ('1', '188');

  

2.创建一个存储过程

CREATE DEFINER=`root`@`localhost` PROCEDURE `add`()
BEGIN
#Routine body goes here... UPDATE test_sche SET counts=counts+1 WHERE id=1;
END

注意,创建存储过程的时候,如果采用命令行的方式,需要先修改命令结束符,将分号改成其他的符号

-- 设置分隔符为 '$$' ,mysql默认的语句分隔符为 ';' ,这样在后续的 create 到 end 这段代码都会看成是一条语句来执行
DELIMITER $$ //创建存储过程或者事件语句 //结束
$$
- 将语句分割符设置回 ';'
DELIMITER ;

  

3.创建一个事件,并调用存储过程

CREATE DEFINER=`root`@`localhost` EVENT `test_sche_event`
ON SCHEDULE EVERY 5 SECOND STARTS '2016-07-12 22:11:50'
ON COMPLETION NOT PRESERVE ENABLE
DO CALL `add`

  

3.1开启定时器

set GLOBAL event_scheduler = 1;

  

到这里,定时任务已经可以执行了,查询可以发现count字段一直在累加。如果想要查看事件运行情况:

3.2查看事件运行状态

select * from mysql.event

  

3.3开启或者关闭事件

ALTER EVENT test_sche_event DISABLE;

ALTER EVENT test_sche_event ENABLE;

  

4.懒人的做法

好久没去写sql,语法都快忘光了,然而借助工具还是很容易做出定时器的。这里采用Navicat for mysql:

4.1创建存储过程

4.2创建事件

mysql创建定时执行存储过程任务的更多相关文章

  1. mysql创建定时执行存储过程任务实现订单定时关闭

    CREATE PROCEDURE `tableName`.`procedureName`() LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECUR ...

  2. 创建JOB定时执行存储过程

    创建JOB定时执行存储过程有两种方式 方式1:通过plsql手动配置job,如下图: 方式2:通过sql语句,如下sql declare job_OpAutoDta pls_integer;--声明一 ...

  3. 0327定时执行--存储过程--dbms_job--dbms_scheduler.create_job

    --oracle job 定时执行 存储过程 --建一张测试表 create table Person( name ), sex ) ); / --创建测试的存储过程 create or replac ...

  4. oracle job 定时执行 存储过程

    oracle job 定时执行 存储过程   一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式 SQL> create table JOB_TEST(a ...

  5. Oracle定时执行存储过程(转)

    定时执行存储过程在平时开发中经常会用到,年前的时候自己也做了一个,由于时间关系一直没能记录,现记录下来.       首先用一个完整的例子来实现定时执行存储过程. 任务目标:每小时向test表中插入一 ...

  6. Oracle通过JOB定时执行存储过程实现两表数据比对

    需求: 第三方云平台管理的虚拟机会进行关机.资源扩展等操作,因此开关机状态.CPU.内存.磁盘大小等数据需要进行同步.这里第三方云平台是BMC CLM云平台,底层虚拟化平台是Vcenter.进行同步的 ...

  7. PG数据库创建并执行存储过程批量插入数据

    记录一下PG数据库创建并执行存储过程批量插入数据的SQL: create or replace function addId() returns boolean AS $BODY$ declare i ...

  8. 使用mysql事件定时执行岗位七天下线任务

    最近做了一个招聘的项目,在项目中有一个定时下线的需求.在做之前我一直在考虑到底使用window 服务,还是使用调度,最终我选择使用mysql定时事件,因为这样简单方便. 思路:首先创建一个存储过程,通 ...

  9. SQL sever 创建定时执行任务

    在SQL的使用过程中,我们经常要做些数据备份以及定时执行的任务. 这些任务能够帮助我们简化工作过程. 下面我们了解下如何创建一个定时执行的存储过程. 首先我们要打开 SQL server 代理服务 选 ...

随机推荐

  1. Unity3D UGUI之ScrollView弹簧效果

    unity3d版本5.3.2p4 UGUI中ScrollView包含Viewport(Content) ScrollView包含脚本.其Movement Type一共3个选项.Elastic就是弹簧效 ...

  2. 无参数实例化Configuration对象以及addResource无法加载core-site.xml中的内容

    core-site.xml中配置的fs.default.name是hdfs://localhost:9000.但是这里读取出来的是本地文件系统.原因暂不知?有谁知道?

  3. 华为oj 刷题记录之合唱团

    华为OJ-合唱队 描述 计算最少出列多少位同学,使得剩下的同学排成合唱队形 说明: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队 ...

  4. Repeater的分页

      Repeater控件是个好东西.轻量级.又好用.完全的自定义.但是,正是因为这些优点它没有自动分页的功能.这个需要研究一下.我看了一下起点等小说网站,那些什么推荐排名榜用Repeater控件那是很 ...

  5. 安卓刷机--fastboot线刷

    首先需要下载fastboot.exe,copy到system32文件夹下. 对于安卓系统的智能手机,同时按住开机键和音量减键,或手机连上电脑,输入adb reboot bootloader进入fast ...

  6. SQL Server 2016五大优势挖掘企业用户数据价值

    SQL Server 2016五大优势挖掘企业用户数据价值 转载自:http://soft.zdnet.com.cn/software_zone/2016/0318/3074442.shtml 3月1 ...

  7. 你必须知道的指针基础-1.预备篇:搭建GCC开发环境

    一.关于GCC编译器 GCC(GNU Compiler Collection)是一套功能强大.性能优越的编程语言编译器,它是GNU计划的代表作品之一.GCC是Linux平台下最常用的编译器,GCC原名 ...

  8. 最流行的编程语言 JavaScript 能做什么?

    此文转载oschina文章 首先很遗憾的一点是,“PHP虽然是最好的语言”,但是它不是最流行的语言. 同时对不起的还有刚刚在4月TIOBE编程语言排行榜上上榜的各个语言: 你们都很棒,但是你们都担当不 ...

  9. 高灵活度,高适用性,高性能,轻量级的 ORM 实现

    ORM(Object-Relational Mapping 对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,目的是提供易于理解的模型化数据的方法. ORM虽然有诸多好处,但是在实 ...

  10. ORA-12899: value too large for column (actual: 27, maximum: 20)

    导入数据时报错以下错误,这是因为原来的数据库是GBK的,每个汉字两个字节,但新数据库是UTF-8的,每个汉字是三个字节,导致超过长度了. ORA-12899: value too large for ...