Defining Stored Programs
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的更多相关文章
- Using Stored Programs with MySQLdb
http://flylib.com/books/en/1.142.1.125/1/ Using Stored Programs with MySQLdb The techniques for call ...
- MySQL之mysql命令使用详解
MySQL Name mysql - the MySQL command-line tool Synopsis mysql [options] db_name Description mysql is ...
- An Introduction to Stored Procedures in MySQL 5
https://code.tutsplus.com/articles/an-introduction-to-stored-procedures-in-mysql-5--net-17843 MySQL ...
- 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 ...
- MySQL权限系统(二). MySQL提供的特权 Privileges Provided by MySQL
MySQL provides privileges that apply in different contexts and at different levels of operation: Adm ...
- MySQL 之 Metadata Locking 研究
MySQL5.5 中引入了 metadata lock. 顾名思义,metadata lock 不是为了保护表中的数据的,而是保护 database objects(元数据)的.包括表结构.schem ...
- My Sql 中要Alter Table的同学请注意!!!
首先我建议你在对MySQL表做DDL操作时: 1 执行 show processlist 查看,要操作的表(数据库对象)是否处于锁状态 if("未锁定") { 执行DDL语句 }e ...
- Raising Error Conditions with MySQL SIGNAL / RESIGNAL Statements
http://www.mysqltutorial.org/mysql-signal-resignal/ Summary: in this tutorial, you will learn how to ...
- [MySQL Reference Manual] 6 安全性
6. 安全性 在Mysql安装配置时要考虑安全性的影响,以下几点: Ÿ 常规因素影响安全性 Ÿ 程序自身安全性 Ÿ 数据库内部的安全性,即,访问控制 Ÿ 网络安全性和系统安全性 Ÿ ...
随机推荐
- [译] UML中的关系之Dependency
在UML中,依赖关系表示Client依赖于另一个元素,叫做Supplier. 通常来说,依赖关系不需要特殊的名字. 依赖的类别 抽象 abstraction, derive, refine, trac ...
- 建模算法(一)——线性规划
一.解决问题 主要是安排现有资源(一定),取得最好的效益的问题解决,而且约束条件都是线性的. 二.数学模型 1.一般数学模型 2.MATLAB数学模型 其中c,x都是列向量,A,Aeq是一个合适的矩阵 ...
- php操作数据库找不到列
- [LintCode] Permuation Index
Given a permutation which contains no repeated number, find its index in all the permutations of the ...
- Linq to Sql/entity Join
inner join 模板: var query = from x in db.T1 join y in db.T2 on x.Id equals ...
- Chart系列(二):数据绑定
1.绑定到OleDbDataReader: // Define the database query string mySelectQuery="SELECT Name, Sales FRO ...
- C#控制鼠标位置
It is not possible using the .NET BCL. However if you really want it you can use native SetCursorPos ...
- chrome://inspect 移动前端调试方案(Android + Chrome 实现远程调试)
一:背景通常情况我们调试移动端页面最常用的方法就是:切换pc端浏览器的userAgent来模拟手机或其他移动设备调试页面 然后用手机打开要调试的页面 刷新页面查看调试结果 但是这就存在两个问题 在pc ...
- 更新Android SDK之后Eclipse提示ADT版本过低的一个简易解决办法
首先说明一下发表这一篇博文的“历史原因”吧,因为在更新SDK之后,进入Eclipse设置Android SDK目录的时候,会突然说我的版本低什么的,尝试自己解决但失败之后,我在搜索引擎上找了很多中文的 ...
- sql server 取随机行
--从table_name中随机取n行 select top n * from table_name order by NEWID()