mysql 存储过程和事件调度
存储过程(procedure):
建立一个存储过程需要知道的基础知识
1.确定输入/输出的参数和类型:
IN tname varchar(20) 其中 IN 表示输入参数,tname 是参数名 varchar(20) 是参数类型
RETURNS int(10) 其中 RETURNS 表示输出 返回 ,int(10) 表示 返回类型
2.定义变量和赋值。
declare 定义变量 例如 declare a float;
set 赋值 例如 set a=0; 或者 set a = rand();
如果set 的变量前面有@符号表示这个变量是一个会话变量。否则是一个局部变量。
3.过程的出体部分。可以是各种运算,也可以是数据库操作。支持 if ...else 、循环等基本语法。
4.程序可以有返回值 也可以没有
5.调用存储过程 使用 call 例如 call pro_name('1','2');
建立一个存储过程的格式:
create procedure 存储过程名称 (IN $table_name varchar(20),IN $field varchar(10))
begin //主体开始
//主体
end // 主体结束
definer
例如:
delimiter $$ 设置语句结束符为 //
DROP PROCEDURE IF EXISTS select_number//
create procedure select_number(in ac int)
begin
declare a text;
set a=ac;
select a;
end$$
delimiter ; //将语句结束改回;
因为在存储过程中使用了 ;号 为了不让mysql 运行 需要修改mysql 语句结束符;
调用
call select_number();
结果为 :

基于这个建立一个事件:
create event if not exists test
on schedule every second
on completion preserve
do call select_number();
每隔10秒执行以下 select_number 这个存储过程 test 是时间的名称;
定时插入案例
存储过程为:
delimiter $$
create procedure insert_name(in name varchar())
begin
insert into a2 values(name);
end$$
delimiter ;
建立每个10秒插入事件:
create event if not exists insert_name
on schedule every second
on completion preserve
do call insert_name('test_name');
每隔多一点时间 查看一个a2 表 看看是否多了一个 test_name 的值;
关闭事件:
alter event insert_name on completion preserve disable;
删除事件:
drop event insert_name;
查看所有事件:
show events;
如果event 执行不了,可能是因为event功能没有打开;
查看event是否打开:
show variables like '%scheduler%';
开启:
set global event_scheduler = ;
查看有哪些存储过程:
show procedure status;
查看存储过程建立代码:
show create procedure proc_name;
mysql 存储过程和事件调度的更多相关文章
- 记录-MySQL中的事件调度Event Scheduler
下面是自己的实例 /*查询event是否开启(查询结果Off为关闭 On为开启)*/show variables like '%sche%'; /*开启/关闭命令(1开启--0关闭)*/set glo ...
- MySQL计划任务(事件调度器)(Event Scheduler)
http://www.cnblogs.com/c840136/articles/2388512.html https://dev.mysql.com/doc/refman/5.7/en/events- ...
- MYSQL存储过程及事件
关于mysql下的存储过程以及事件的创建 以下这个存储过程主要实现的功能就是查询表里面半年前的数据,假设有就存到文件.然后将数据删除. CREATE DEFINER = `root`@`localho ...
- MySQL计划任务(事件调度器)(Event Scheduler)[转]
原文链接: http://www.cnblogs.com/c840136/articles/2388512.html MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件.定时任务机 ...
- MySQL计划任务(事件调度器)
原文:http://www.cnblogs.com/c840136/articles/2388512.html 备忘; MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件.定时任务 ...
- mysql存储过程和事件
1.会员表member和车辆表car,更新每个会员下面的车辆数量have_car字段. DELIMITER $$ USE $$ DROP PROCEDURE IF EXISTS `sp_update_ ...
- mysql存储过程游标加计划任务事件调度器
存储过程加事件调度器 -- 存储过程 (多个)游标的使用 临时表的使用(让执行时间从一个小时降低到5分钟)DELIMITER $$ DROP PROCEDURE IF EXISTS `eval_cal ...
- mysql数据库事件调度(Event)
mysql中的事件调度器可以定时对数据库增加,删除和执行操作,相当于数据库中的临时触发器,与Linux系统中的执行计划任务一样,这样就可以大大降低工作量. 1.开启事件调度器 [root@node1 ...
- mysql事件调度器定时删除binlog
MySQL5.1.6起Mysql增加了事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由Linux操作系统的计划任务来执行的工作MySQL的事件调度器可以精确 ...
随机推荐
- 浅析 Magento网站建站空间的选择
对 Magento稍有了解的人都知道,作为一个功能异常强大的网络商城程序,Magento的运行对主机空间的要求是非常高的:很多 Magento建站公司都会推荐 VPS 甚至独立服务器来运行 Magen ...
- update kernel 3.10-3.12
安装包下载以及依赖包安装 1.到www.kernel.org下载3.12.48压缩包 2.tar xvf linux-3.12.48.tar.xz 3.sudo yum install ncurses ...
- storage disk
scsi fdisk -l can not display the new disk Rescan the SCSI Bus to Add a SCSI Device Without rebootin ...
- 返回值是JSON的阿贾克斯方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 向Android模拟器中批量导入通讯录联系人
使用adb命令向Android模拟器中批量导入通讯录联系人的方法: 使用adb提供的命令, 可以非常方便地从PC中将通讯录批量导入android模拟器中. 首先要先准备好固定格式的vcf文件, 该文件 ...
- C++笔记(一)
一.动态数组 一般我们定义数组都是用下面的方式: int str[100]; 但对于一些需要手动输入数组大小的情况,这种定义方式就行不通了.因为上面这种方式要求事先知道数组大小,并且给数组中括号中必须 ...
- mysqldump导出
mysqldump -u user -p dbname table1 table2 > db.sql mysql执行sql mysql –uroot –p -Dtest < 1.sql
- 华盛顿大学 Programming Languages
表达式三要素: 语法,类型和计算值.
- viewport设置
<meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable ...
- 浅谈 Scrapy 爬虫(二)
越写越像官方文档的翻译,偏离了初衷.写一些官方文档里没有的内容吧. 在不限制宽带的环境下,根据页面的大小, Scrapy 一秒能爬取40-70个页面,一天在400万到600万页面.也就是说 Scr ...