MYSQL存储过程及事件
关于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存储过程及事件的更多相关文章
- mysql 存储过程和事件调度
存储过程(procedure): 建立一个存储过程需要知道的基础知识 1.确定输入/输出的参数和类型: IN tname varchar(20) 其中 IN 表示输入参数,tname 是参数名 va ...
- mysql存储过程和事件
1.会员表member和车辆表car,更新每个会员下面的车辆数量have_car字段. DELIMITER $$ USE $$ DROP PROCEDURE IF EXISTS `sp_update_ ...
- MySQL mysqldump 导入/导出 结构&数据&存储过程&函数&事件&触发器
———————————————-库操作———————————————-1.①导出一个库结构 mysqldump -d dbname -u root -p > xxx.sql ②导出多个库结构 m ...
- mysql存储过程游标加计划任务事件调度器
存储过程加事件调度器 -- 存储过程 (多个)游标的使用 临时表的使用(让执行时间从一个小时降低到5分钟)DELIMITER $$ DROP PROCEDURE IF EXISTS `eval_cal ...
- 《MySQL 存储过程编程》-读书笔记
本书结构: 第一部分:存储编程基础 第1章:存储过程程序基础 第2章:MySQL存储编程指南 第3章:语言基础 第4章:语句块 第5章:在存储程序中使用SQL 第一章:MySQL存储程序介绍 存储程序 ...
- MYSQL存储过程中常使用的命令记录
MYSQL存储过程中常使用的命令记录 1.触发器trigger 查看:show triggers; 2.存储过程procedure 查看:show procedure status; 查看详细:sho ...
- mysql存储过程和触发器的应用
***********[mysql 存储过程和触发器 -- 别安驹]********************* 1.什么情况下使用存储过程? 完成一些比较麻烦的逻辑,比如多表在mysql端的cpu很空 ...
- Mysql编写定时任务事件
原文:Mysql编写定时任务事件 场景: 例如:某系统,用户每天只能拥有一次的抽奖机会,抽过后当天就不可再抽,但是过了24:00点后用户就重新拥有一次抽奖机会.像这种需要数据库定时对某个字段进行更新操 ...
- MySQL存储过程入门
MySQL存储过程入门 在本教程中,我们将逐步介绍如何使用CREATE PROCEDURE语句开发第一个MySQL存储过程. 另外,我们将向您展示如何从SQL语句调用存储过程. 编写第一个MySQL存 ...
随机推荐
- SSH Secure File Transfer上传文件错误:encountered 1 errors during the transfer解决办法
在使用SSH 工具向Linux服务器上传文件时,弹出 encountered 1 errors during the transfer 错误. 解决方案: 1.准备上传的那个文件所在目录路径存在(), ...
- caffe-安装anaconda后重新编译caffe报错
ks@ks-go:~/caffe-master$ make -j16 CXX/LD -o .build_release/tools/convert_imageset.bin CXX/LD -o .bu ...
- Codeforces 714B. Filya and Homework
题目链接:http://codeforces.com/problemset/problem/714/B 题意: 给你一个含有 n 个数的数组, 问你是否存在一个 x, 使得这个数组中的某些数加上 x, ...
- AndroidManifest.xml文件详解(uses-feature)
http://blog.csdn.net/think_soft/article/details/7596796 语法(SYNTAX): <uses-featureandroid:name=&qu ...
- scrapy抓取拉勾网职位信息(三)——爬虫rules内容编写
在上篇中,分析了拉勾网需要跟进的页面url,本篇开始进行代码编写. 在编写代码前,需要对scrapy的数据流走向有一个大致的认识,如果不是很清楚的话建议先看下:scrapy数据流 本篇目标:让拉勾网爬 ...
- 抽丝剥茧:理解Android权限机制
前一段时间面试官问我Android在Linux的基础上,权限做了哪些改变.霹雳呱啦说了一堆,但是说着说着,始终感觉自己说的缺了点东西,自己理解还是不够到位,而且网上的很多文章在原理上基本都是大同小异, ...
- 【线段树】I Hate It
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- bzoj 1783: [Usaco2010 Jan]Taking Turns
1783: [Usaco2010 Jan]Taking Turns Description Farmer John has invented a new way of feeding his cows ...
- python基础--接口与归一化设计、封装、异常、网络编程
1 接口与归一化设计 1.1 归一化概念: 归一化的好处: 1.归一化让使用者无需关心对象的类是什么,只需要知道这些对象都具备某些功能就可以了,这极大降低了使用者的使用难度. 2.归一化使得高层的外部 ...
- Problem X: 双层金字塔
#include<stdio.h> int main() { int i,j,n,m; while(scanf("%d",&n)!=EOF) { ;i<= ...