ok

 DROP PROCEDURE
IF EXISTS truncate_insert_rank_month;
DELIMITER /w/ CREATE PROCEDURE truncate_insert_rank_month ()
BEGIN SET @w = 10 ; TRUNCATE rank_month ;
WHILE @w < 110 DO
INSERT INTO rank_month (
fk_country,
fk_categoryid,
topx,
history_year,
history_month,
coin_sum,
amount_sum
) SELECT
country,
categoryid,
@w,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%M'),
SUM(grab_coin),
SUM(grab_amount)
FROM
grab_rank
WHERE
grab_amount_rank < (@w + 1)
GROUP BY
country,
categoryid,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%M') ;
SET @w = @w + 10 ;
END
WHILE ;
END/w/
DELIMITER;
CALL truncate_insert_rank_month;

ok

 DROP PROCEDURE
IF EXISTS truncate_insert_rank_month;
DELIMITER /w/ CREATE PROCEDURE truncate_insert_rank_month ()
BEGIN
TRUNCATE rank_month ;
SET @w = 10 ;
WHILE @w < 110 DO
INSERT INTO rank_month (
fk_country,
fk_categoryid,
topx,
history_year,
history_month,
coin_sum,
amount_sum
) SELECT
country,
categoryid,
@w,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%M'),
SUM(grab_coin),
SUM(grab_amount)
FROM
grab_rank
WHERE
grab_amount_rank < (@w + 1)
GROUP BY
country,
categoryid,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%M') ;
SET @w = @w + 10 ;
END
WHILE ;
END/w/
DELIMITER;
CALL truncate_insert_rank_month;
 DROP PROCEDURE
IF EXISTS truncate_insert_rank_month;
DELIMITER /w/ CREATE PROCEDURE truncate_insert_rank_month ()
BEGIN
TRUNCATE rank_month ;
DECLARE w INT ;
SET w = 10 ;
WHILE w < 110 DO
INSERT INTO rank_month (
fk_country,
fk_categoryid,
topx,
history_year,
history_month,
coin_sum,
amount_sum
) SELECT
country,
categoryid,
w,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%M'),
SUM(grab_coin),
SUM(grab_amount)
FROM
grab_rank
WHERE
grab_amount_rank < (w + 1)
GROUP BY
country,
categoryid,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%M') ;
SET w = w + 10 ;
END
WHILE ;
END/w/
DELIMITER;
CALL truncate_insert_rank_month;
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE w INT ;
SET w = 10 ;
WHILE w < 110 DO
INSERT INTO rank_month (
fk' at line 4

http://dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html

 DROP PROCEDURE
IF EXISTS truncate_insert_rank_month;
DELIMITER /w/ CREATE PROCEDURE truncate_insert_rank_month ()
BEGIN DECLARE w INT ; TRUNCATE rank_month ;
SET w = 10 ;
WHILE w < 110 DO
INSERT INTO rank_month (
fk_country,
fk_categoryid,
topx,
history_year,
history_month,
coin_sum,
amount_sum
) SELECT
country,
categoryid,
w,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%M'),
SUM(grab_coin),
SUM(grab_amount)
FROM
grab_rank
WHERE
grab_amount_rank < (w + 1)
GROUP BY
country,
categoryid,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%M') ;
SET w = w + 10 ;
END
WHILE ;
END/w/
DELIMITER;
CALL truncate_insert_rank_month; DROP PROCEDURE
IF EXISTS truncate_insert_rank_week;
DELIMITER /w/ CREATE PROCEDURE truncate_insert_rank_week ()
BEGIN DECLARE w INT ; TRUNCATE rank_week ;
SET w = 10 ;
WHILE w < 110 DO
INSERT INTO rank_week (
fk_country,
fk_categoryid,
topx,
history_year,
history_week,
coin_sum,
amount_sum
) SELECT
country,
categoryid,
w,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%V'),
SUM(grab_coin),
SUM(grab_amount)
FROM
grab_rank
WHERE
grab_amount_rank < (w + 1)
GROUP BY
country,
categoryid,
DATE_FORMAT(grab_date, '%Y'),
DATE_FORMAT(grab_date, '%V') ;
SET w = w + 10 ;
END
WHILE ;
END/w/
DELIMITER;
CALL truncate_insert_rank_week; DROP PROCEDURE
IF EXISTS truncate_insert_rank_all;
DELIMITER /w/ CREATE PROCEDURE truncate_insert_rank_all ()
BEGIN DECLARE w INT ; TRUNCATE rank_all ;
SET w = 10 ;
WHILE w < 110 DO
INSERT INTO rank_all (
fk_country,
fk_categoryid,
topx,
coin_sum,
amount_sum
) SELECT
country,
categoryid,
w,
SUM(grab_coin),
SUM(grab_amount)
FROM
grab_rank
WHERE
grab_amount_rank < (w + 1)
GROUP BY
country,
categoryid ;
SET w = w + 10 ;
END
WHILE ;
END/w/
DELIMITER ; CALL truncate_insert_rank_all;

Defining Stored Programs的更多相关文章

  1. Using Stored Programs with MySQLdb

    http://flylib.com/books/en/1.142.1.125/1/ Using Stored Programs with MySQLdb The techniques for call ...

  2. MySQL之mysql命令使用详解

    MySQL Name mysql - the MySQL command-line tool Synopsis mysql [options] db_name Description mysql is ...

  3. An Introduction to Stored Procedures in MySQL 5

    https://code.tutsplus.com/articles/an-introduction-to-stored-procedures-in-mysql-5--net-17843 MySQL ...

  4. Migrating Oracle on UNIX to SQL Server on Windows

    Appendices Published: April 27, 2005 On This Page Appendix A: SQL Server for Oracle Professionals Ap ...

  5. MySQL权限系统(二). MySQL提供的特权 Privileges Provided by MySQL

    MySQL provides privileges that apply in different contexts and at different levels of operation: Adm ...

  6. MySQL 之 Metadata Locking 研究

    MySQL5.5 中引入了 metadata lock. 顾名思义,metadata lock 不是为了保护表中的数据的,而是保护 database objects(元数据)的.包括表结构.schem ...

  7. My Sql 中要Alter Table的同学请注意!!!

    首先我建议你在对MySQL表做DDL操作时: 1 执行 show processlist 查看,要操作的表(数据库对象)是否处于锁状态 if("未锁定") { 执行DDL语句 }e ...

  8. Raising Error Conditions with MySQL SIGNAL / RESIGNAL Statements

    http://www.mysqltutorial.org/mysql-signal-resignal/ Summary: in this tutorial, you will learn how to ...

  9. [MySQL Reference Manual] 6 安全性

    6. 安全性 在Mysql安装配置时要考虑安全性的影响,以下几点: Ÿ   常规因素影响安全性 Ÿ   程序自身安全性 Ÿ   数据库内部的安全性,即,访问控制 Ÿ   网络安全性和系统安全性 Ÿ   ...

随机推荐

  1. hdu 4003 树形dp+分组背包 2011大连赛区网络赛C

    题意:求K个机器人从同一点出发,遍历所有点所需的最小花费 链接:点我 Sample Input 3 1 1 //3个点,从1出发,1个机器人 1 2 1 1 3 1 3 1 2 1 2 1 1 3 1 ...

  2. NDK编译生成so文件

    1 首先加载项目

  3. 16.2.13 asp.net 学习随笔

    using System.Data.SqlClient;//连接数据库必须的 using System.Configuration; CommandType所在的命名空间 system.data; P ...

  4. libswscale图像格式转换与放大缩小

    缩放,例如640x360拉伸为1280x720 注意:没有裁剪! ======================== 有2种使用方法: 简单的初始化方法 (1)       sws_getContext ...

  5. Playmaker Input篇教程之Playmaker购买下载和导入

    Playmaker Input篇教程之Playmaker购买下载和导入 Playmaker Input篇认识Playmaker Playmaker是Unity的插件,其标志如图1-1所示.开发者使用它 ...

  6. 寒假 D3 D Modular Inverse

    Modular Inverse Time Limit: 2 Seconds                                     Memory Limit: 65536 KB     ...

  7. mysql之对触发器的操作

    1. 为什么要使用触发器? 触发器与函数有些类似,都需要声明,执行.但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发,激活,从而实现执行. 当触发DELETE,INSERT,UPDA ...

  8. android 获取当前屏幕作为毛玻璃模糊背景Acitivity作为弹出框。

    使用: 1.在执行弹出界面前,先将其当前屏幕截图. BlurBuilder.snapShotWithoutStatusBar(getActivity()); 2.为了确保界面切入无效果. startA ...

  9. topcoder SRM 593 DIV2 WolfDelaymaster

    #include <iostream> #include <string> #include <algorithm> using namespace std; cl ...

  10. TYVJ 1014 乘法游戏

    做题记录:2016-08-15 16:10:14 背景 太原成成中学第2次模拟赛 第四道 描述 乘法游戏是在一行牌上进行的.每一张牌包括了一个正整数.在每一个移动中,玩家拿出一张牌,得分是用它的数字乘 ...