文档章节

存储过程调用和定义,以及 truncate table

之渊
 之渊
发布于 2017/10/13 15:46
字数 425
阅读 65
收藏 0

今天 大神给了我一个存储过程定义语句要我玩。。。 可是我就没有写过存储过程,而且不喜欢。。。

没办法,,,百度了一通: 下面是例子:

drop procedure if exists proc_summary_data_report_daily;


create procedure proc_summary_data_report_daily (IN querydate date)
begin
    set autocommit = 1;
    create temporary table if not exists tmp_sum
    (
        grp_no int,
        grp_name varchar(50),
        sort_num int,
        var_code varchar(50),
        var_name varchar(50),
        var_length int,
        var_value decimal(18,3)
    ) engine=memory;
    begin
        
        insert into tmp_sum(grp_no, grp_name, sort_num, var_code, var_name, var_length, var_value) values
        (1, '用户登录', 1, 'loginpersons', '登录人数', 0, 100),
        (1, '用户登录', 2, 'logintimes', '登录次数', 0, 800),
        (2, '大板销售', 1, 'saleorders', '销售订单数', 0, 40),
        (2, '大板销售', 2, 'salenumbers', '销售件数', 0, 110),
        (2, '大板销售', 3, 'saleweight', '销售重量', 3, 1300.578),
        (2, '大板销售', 4, 'saleamount', '销售金额', 2, 5300000.89);
        
        select grp_no, grp_name, sort_num, var_code, var_name, var_length, var_value
        from tmp_sum;
    end;
    
    truncate table tmp_sum;
end;

然后应该怎么调用呢? 创建了一个临时表 ,而且是 内存表的。。 然后我 查询看看 select * from tmp_sum 发现报错,并没有这个表。。。

晕了。。。 那明明声明了啊,而且可以看到有一个 存储过程函数了。

调用这个存储过程? 我们调用sql 函数。比如 : SELECT proc_summary_data_report_daily(NOW()); 发现不行啊,不是一个函数。

百度一下,原来要使用 call : -- 调用存储过程 call proc_summary_data_report_daily(NOW());

OK,数据出来了。

然后看到 truncate table tmp_sum; 这不是删除表的数据? 怎么会 执行存储过程就 有 内容了? 估计是 ,先查询出来,,,放入缓存里面。然后清空表数据。下次 调用这个存储过程的时候。 就又是新的数据了。 下面是 更详细的说明:

参考 http://blog.csdn.net/crazylaa/article/details/5368698

© 著作权归作者所有

之渊
粉丝 14
博文 649
码字总数 200420
作品 0
佛山
程序员
私信 提问
truncate 、delete与drop区别

相同点: 1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: TRUNCATE TABLE:删除内容、释放空间但...

wersdffg
2015/10/21
115
1
SQL truncate 、delete与drop区别

SQL truncate 、delete与drop区别 相同点: 1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: 1....

yh_pub
2016/11/08
0
0
SQL中 truncate 、delete与drop区别与联系

相同点: 1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: 1. truncate 和 delete 只删除数据不...

garfield_chen
2015/01/02
0
0
SQL语句中----删除表数据drop、truncate和delete的用法

最近开发常常需要清理表,故查询一些相关知识来帮助自己提高。 一、SQL中的语法 1、drop table 表名称 eg: drop table dbo.SysTest 2、truncate table 表名称 eg: truncate table dbo.SysTe...

babyhanggege
2017/11/08
0
0
drop,delete与truncate的区别

drop直接删掉表; truncate删除的是表中的数据,再插入数据时自增长的数据id又重新从1开始; delete删除表中数据,可以在后面添加where字句。 (1) DELETE语句执行删除操作的过程是每次从表...

博为峰教研组
2016/12/13
32
0

没有更多内容

加载失败,请刷新页面

加载更多

经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0
实战项目-学成在线(八)

在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 注册中心作用: 1、微服务数量众多,要进行远程调用就需要知...

lianbang_W
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部