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;

时间: 2024-08-02 15:10:26

MYSQL存储过程及事件学习笔记的相关文章

PHP与MYSQL交互函数表学习笔记

最近一直在研究PHP与MYSQL,感觉PHP与MYSQL交互的函数都是过程化的,当然也有mysqli扩展,面向对象,Java和C#写多了之后,再写PHP,有些不适应,感觉又回到了学C的年代.今天学习了一些函数,记录下来,以便日后忘记时,可以参考. 说 明 函 数 名 函 数 详 细 函 数 说 明 建立数据库连接 mysql_connect() resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string

MySQL入门教程之学习笔记

慢速SQL:执行时间超过给定时间范围的查询就称为慢速查询. 在MySQL中如何记录慢速SQL? 答:可以在my.cnf中设置如下信息:   1 [mysqld]  2 ; enable the slow query log, default 10 seconds  3 log-slow-queries  4 ; log queries taking longer than 5 seconds  5 long_query_time = 5  6 ; log queries that don't u

js 变量、字符串、条件语句、事件学习笔记

变量 还是通过一个实例来学习变量的相关语法:  代码如下 复制代码 <!--variables.html--> [html] [head] [script language="JavaScript"] <!-- hide me // load up some variables ,定义变量 var hen_num = 3; var eggs_per_week_each = 5; var weeks_per_month = 4;   // do some calcula

JavaScript高级程序设计 事件学习笔记_javascript技巧

第12章 事件 1.事件流 1.1事件冒泡(IE事件流) □事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接受,然后逐级向上传播到较为不具体的节点(文档). □所有浏览器均支持事件冒泡.Firefox.chrome.safari将事件一直冒泡到window对象. 1.2事件捕获(Netscape事件流) □不太具体的节点更早收到事件,而具体的节点最后收到节点. □Safari.chrome.Opera.firefox支持,但从window对象

Laravel 的 Events 及 Observers 模型事件学习笔记

首先我们来看看这个被称为 模型事件(model events) 的技术.它的基本概念非常简单: 在 EventServiceProvider 中你可以添加一个特定的事件监听器,并绑定一个闭包函数 在闭包函数中,你不需要接触模型代码就可以添加新的行为 绑定操作必须放在类的 boot() 方法中 这是一个把创建 (created) 用户事件与闭包函数进行绑定的简单示例.闭包的 $user 参数包含了指定用户的实例:   public function boot(DispatcherContract

Ubuntu Server 12.04 安装mysql 5.6.10学习笔记

首先,下载二进制版本的mysql包: http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz 因为Ubuntu Server上 wget比较慢,所以我是直接在windows用迅雷下载好,然后WinSCP上传到服务器的,看各自喜好了. 上正题. 包放在~/Download目录下,全部安装命令如下: 1.解压tar.gz  代码如下 复制代码 tar –xzf mysql-5.6.10-li

mysql Int数据类型长度学习笔记

1.数值类型    列类型 需要的存储量    TINYINT 1 字节    SMALLINT 2 个字节    MEDIUMINT 3 个字节    INT 4 个字节 int(M) 在 integer 数据类型中,M 表示最大显示宽度. 在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系. 和数字位数也无关系 int(3).int(4).int(8) 在磁盘上都是占用 4 btyes 的存储空间. 除了字段类型设 zerofill(补零)有点不同外,int(M)

jquery事件学习笔记(转载)

一.页面载入1.ready(fn)当DOM载入就绪可以查询及操纵时绑定一个要执行的函数.这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度. 简单地说,这个方法纯粹是对向window.load事件注册事件的替代方法.通过使用这个方法,可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数,而99.99%的JavaScript函数都需要在那一刻执行.有一个参数--对jQuery函数的引用--会传递到这个ready事件处理函数中.可以给这个参数任意起一个名字,并因此可以

Mysql学习笔记(十)存储过程与函数 + 知识点补充(having与where的区别)

原文:Mysql学习笔记(十)存储过程与函数 + 知识点补充(having与where的区别) 学习内容:存储程序与函数...这一章学的我是云里雾里的... 1.存储过程...   Mysql存储过程是从mysql 5.0开始增加的一个新功能.存储过程的优点其实有很多,不过我觉得存储过程最重要的优点就是实现了SQL代码的封装,那么我们为什么需要封装SQL语句呢?原因就是当我们在面对一个庞大的数据库的时候,当我们使用外部程序去访问数据库的时候...我们总不能在外部程序中内嵌很多的SQL语句吧...