关于mysql下的存储过程以及事件的创建

以下这个存储过程主要实现的功能就是查询表里面半年前的数据,假设有就存到文件。然后将数据删除。

CREATE DEFINER = `root`@`localhost` PROCEDURE `NewProc`()
BEGIN
select COUNT(*) INTO @count from S_ACCOUNT where date_add(registerTime, interval 6 month)<=NOW();
IF @count>0
THEN
set @today=TIME_TO_SEC(now());
set @select_sql=concat("select * from S_ACCOUNT where date_add(registerTime, interval 6 month)<=NOW()
INTO OUTFILE 'C:/\\",@today,".txt' FIELDS TERMINATED BY ',';");
PREPARE charu FROM @select_sql;
EXECUTE charu;
delete from S_ACCOUNT where date_add(registerTime, interval 6 month)<=NOW() ;
commit;
END IF;
END;

FIELDS TERMINATED BY ',' 字段间切割符

   OPTIONALLY ENCLOSED BY '"' 将字段包围 对数值型无效

   LINES TERMINATED BY '\n' 换行符

以下是创建事件的代码 。逻辑是从'2014-11-05 09:00:00'開始,每天去运行pro_test()这个过程。

CREATE DEFINER=`root`@`localhost`
EVENT `NewEvent`
ON SCHEDULE EVERY 1 DAY STARTS '2014-11-05 09:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
DO
call pro_test();

当我们在创建事件的时候有可能会提示事件处于关闭状态,这个时候就须要手动开启事件。

首先在sql中查询计划事件的状态:SHOW VARIABLES LIKE 'event_scheduler'

假设返回的是off表示当前是关闭状态,假设是on当前已经开启了计划任务。

在mysql程序的文件夹下找到my.ini文件,加入一个项:event_scheduler = 1

保存后重新启动mysql服务就可以,重新启动服务能够在服务管理里面找到.

也能够用脚本来实现:

  mysql event_scheduler

  开启event_scheduler sql指令:

  SET GLOBAL event_scheduler = ON;

  SET @@global.event_scheduler = ON;

  SET GLOBAL event_scheduler = 1;

  SET @@global.event_scheduler = 1;

  相反,关闭event_scheduler指令:

 SET GLOBAL event_scheduler = OFF;

  SET @@global.event_scheduler = OFF;

  SET GLOBAL event_scheduler = 0;

  SET @@global.event_scheduler = 0;

MYSQL存储过程及事件的更多相关文章

  1. mysql 存储过程和事件调度

    存储过程(procedure): 建立一个存储过程需要知道的基础知识 1.确定输入/输出的参数和类型: IN tname varchar(20) 其中 IN 表示输入参数,tname  是参数名 va ...

  2. mysql存储过程和事件

    1.会员表member和车辆表car,更新每个会员下面的车辆数量have_car字段. DELIMITER $$ USE $$ DROP PROCEDURE IF EXISTS `sp_update_ ...

  3. MySQL mysqldump 导入/导出 结构&数据&存储过程&函数&事件&触发器

    ———————————————-库操作———————————————-1.①导出一个库结构 mysqldump -d dbname -u root -p > xxx.sql ②导出多个库结构 m ...

  4. mysql存储过程游标加计划任务事件调度器

    存储过程加事件调度器 -- 存储过程 (多个)游标的使用 临时表的使用(让执行时间从一个小时降低到5分钟)DELIMITER $$ DROP PROCEDURE IF EXISTS `eval_cal ...

  5. 《MySQL 存储过程编程》-读书笔记

    本书结构: 第一部分:存储编程基础 第1章:存储过程程序基础 第2章:MySQL存储编程指南 第3章:语言基础 第4章:语句块 第5章:在存储程序中使用SQL 第一章:MySQL存储程序介绍 存储程序 ...

  6. MYSQL存储过程中常使用的命令记录

    MYSQL存储过程中常使用的命令记录 1.触发器trigger 查看:show triggers; 2.存储过程procedure 查看:show procedure status; 查看详细:sho ...

  7. mysql存储过程和触发器的应用

    ***********[mysql 存储过程和触发器 -- 别安驹]********************* 1.什么情况下使用存储过程? 完成一些比较麻烦的逻辑,比如多表在mysql端的cpu很空 ...

  8. Mysql编写定时任务事件

    原文:Mysql编写定时任务事件 场景: 例如:某系统,用户每天只能拥有一次的抽奖机会,抽过后当天就不可再抽,但是过了24:00点后用户就重新拥有一次抽奖机会.像这种需要数据库定时对某个字段进行更新操 ...

  9. MySQL存储过程入门

    MySQL存储过程入门 在本教程中,我们将逐步介绍如何使用CREATE PROCEDURE语句开发第一个MySQL存储过程. 另外,我们将向您展示如何从SQL语句调用存储过程. 编写第一个MySQL存 ...

随机推荐

  1. cocos2dx三种定时器的使用以及停止schedule,scheduleUpdate,scheduleOnce。

    今天白白跟大家分享一下cocos2dx中定时器的使用方法. 首先,什么是定时器呢?或许你有时候会想让某个函数不断的去执行,或许只是执行一次,获取你想让他每隔几秒执行一次,ok,这些都可以统统交给定时器 ...

  2. 转:攻击JavaWeb应用[5]-MVC安全

    转:http://static.hx99.net/static/drops/tips-347.html 攻击JavaWeb应用[5]-MVC安全 园长 · 2013/07/25 13:31 注:这一节 ...

  3. ZOJ 2967 Colorful Rainbows

    暴力. 先删掉一些边,平行的线只保留$b$最大的.然后暴力,每次放入第$i$条边,和还没有被完全覆盖的边都算一遍,更新一下. #pragma comment(linker, "/STACK: ...

  4. java汉字获取首字母

    前言 在项目中很多时候我们需要获取姓名或者名称的首字母或者全拼,以用于模糊查询或者字母查询,在这里分享一个实例:供小伙伴们参考. 导入jar包 <dependency> <group ...

  5. Bzoj2818 Gcd(莫比乌斯反演)

    题面 题意都在题目里面了 题解 你可以把题意看成这个东西 $$ \sum_{i=1}^n\sum_{j=1}^m\mathbf f(gcd(i,j)) $$ 其中$\mathbf f(n)$为$是否是 ...

  6. SCU 4444 Travel (补图最短路)

    Travel The country frog lives in has \(n\) towns which are conveniently numbered by \(1, 2, \dots, n ...

  7. 32、Flask实战第32天:优化json数据的返回

    接着上节,我们通过jsonify返回json数据非常方便 ... return jsonify({"code": 400, "message": message ...

  8. poj 1068(模拟题)

    Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 23545   Accepted: 13802 De ...

  9. VB查询数据库之结账——机房收费系统总结(五)

    对于机房收费的结账,我感觉是所有窗体中,最难的一个.这个窗体我真的做了好多天.它的难度系数我感觉是最高的. 首先,你要理清上机时间和收费标准的关系,在预备时间中,是不收费的. 其次,在超过预备时间,一 ...

  10. [POJ3728]The merchant

    题目大意: 给你一棵n个结点的带权树,有q组询问,问你从u到v的路径上最大值与最小值的差(最大值在最小值后面). 思路: 首先考虑路径上合并两个子路径u->t和t->v时的情况. 假设我们 ...