mysql存储过程 定时任务
来源:互联网 发布:淘宝联盟登陆要认证 编辑:程序博客网 时间:2024/04/30 22:47
#处理采集数据DROP PROCEDURE IF EXISTS do_collect_price;CREATE PROCEDURE do_collect_price()BEGIN DECLARE flag INT DEFAULT 0;#声明游标循环标识 DECLARE now_time INT DEFAULT UNIX_TIMESTAMP();#声明游标循环标识 DECLARE start_time int DEFAULT UNIX_TIMESTAMP(date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now())-1 day),interval 1 month)); DECLARE end_time int DEFAULT UNIX_TIMESTAMP(date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now()) day),interval 0 month)); DECLARE percent FLOAT DEFAULT 0.1;#去除最高最低价格百分比 DECLARE date_time char(8) DEFAULT extract(year_month from NOW());#当前年份月份201310 DECLARE num int DEFAULT 0;#总数 DECLARE t_cut int DEFAULT 0;#需要去掉的价格一半 DECLARE t_total int DEFAULT 0;#有效价格总数 DECLARE temp_Price DECIMAL(18,4); DECLARE tMaterialID char(30); DECLARE tMaterialName char(250); DECLARE tMaterialUnit char(150); DECLARE tMaterialFormat char(150); DECLARE cur CURSOR FOR SELECT MaterialID,MaterialName,MaterialUnit,MaterialFormat,count(MaterialID) as num FROM collect_price WHERE add_time > start_time AND add_time < end_time GROUP BY MaterialID,MaterialName,MaterialUnit,MaterialFormat; DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag=1; OPEN cur; #删除jcj_price当月价格包信息 DELETE FROM jcj_price WHERE PriceMonth = date_time; #删除pricepacklist可用期间信息 DELETE FROM pricepacklist WHERE packid = 1020 and packmonth = date_time; FETCH cur INTO tMaterialID,tMaterialName,tMaterialUnit,tMaterialFormat,num; WHILE flag <> 1 DO IF num < 3 THEN select avg(MaterialPrice) from (select MaterialPrice from collect_price where add_time > start_time and add_time < end_time and MaterialID=tMaterialID and MaterialName=tMaterialName and MaterialUnit=tMaterialUnit and MaterialFormat=tMaterialFormat) p INTO temp_Price; ELSE SET t_cut = ROUND(num*percent); SET t_total = num - 2*t_cut; select avg(MaterialPrice) from (select MaterialPrice from collect_price where add_time > start_time and add_time < end_time and MaterialID=tMaterialID and MaterialName=tMaterialName and MaterialUnit=tMaterialUnit and MaterialFormat=tMaterialFormat order by MaterialPrice asc limit t_cut,t_total) p INTO temp_Price; END IF; insert into jcj_price(MaterialID,PriceMonth,Price,MaterialName,MaterialUnit,MaterialFormat)values(tMaterialID,date_time,temp_Price,tMaterialName,tMaterialUnit,tMaterialFormat); FETCH cur INTO tMaterialID,tMaterialName,tMaterialUnit,tMaterialFormat,num; END WHILE; insert into pricepacklist(packid,packmonth,packver,packname,periodtype,enabled)values(1020,date_time,1,'',1,0); #备份收集数据 #SELECT * INTO collect_price_bakup FROM collect_price WHERE add_time > start_time and add_time < end_time; #DELETE FROM collect_price WHERE add_time > start_time and add_time < end_time; CLOSE cur;END#call pricepack.do_collect_price()
转载自:http://www.9958.pw/post/mysql_procedure
0 0
- mysql 存储过程+定时任务
- mysql存储过程 定时任务
- mysql存储过程 定时任务
- Mysql定时任务&存储过程
- linux定时任务 掉mysql 存储过程
- mysql定时任务与存储过程实例
- MYSQL 定时任务调用存储过程
- mysql创建定时执行存储过程任务
- 存储过程定时任务
- mysql 存储过程+定时任务实现数据迁移
- Mysql 定时任务 事件处理存储过程详解
- mysql创建存储过程和事件(定时任务)
- mysql创建一个存储过程并创建定时任务
- MySQL update case select 存储过程 设置定时任务
- MySQL定时任务的创建(存储过程)
- mysql使用存储过程和事件实现定时任务
- MySQL存储过程与定时任务-介绍与实践
- MySql 定时任务和存储过程,每月创建一张表
- 安卓开发 socket之shutdownOutput()
- STL vector
- Linux驱动开发-9、Linux定时器
- 利用jquery高仿select下拉菜单效果
- C语言volatile
- mysql存储过程 定时任务
- Fedora Nagios Quickstart
- 《ITer奋斗史的第一个博客》
- 回归与分类的区别
- 管理achive log
- HDU 2028 Lowest Common Multiple Plus(求多个数的最小公倍数,转换呀)
- 第三次c++作业
- Mybatis第一天
- hdu1394 Minimum Inversion Number 最小逆序数 线段树单点更新区间查询