美文网首页
记第一次写存储过程

记第一次写存储过程

作者: Tester_miao | 来源:发表于2017-07-26 00:43 被阅读14次

最近这个项目要进行压力测试,需要看历史告警,充值记录,订单数据三张表的查询及处理能力。于是,我的任务:三天之内往数据库中插入大量的数据

昨天上午,了解表与表之间的关联关系

昨天下午,开始了解存储过程并试着通过存储过程 插入与其他表无关联关系 的数据

晚上,被字符串与数字的拼接卡住了,各种百度不到,求助clover的结果是使用concat,终于成功了。然后简单了解了一下循环语句的使用

今天上午,开开心心的往数据库添数据,当然是偷懒了(有些数据之间有关联关系,比如商户表中用商户ID标识唯一,用户表中用用户ID标识唯一,还有张商户与用户中间表,记录他们的关联关系。每个商户关联只能关联一个用户,且一个用户只能关联一个商户,于是插数据的时候商户表的ID从100开始,用户表的ID也从100开始,这样中间表中插入数据时,商户ID与用户ID都从100开始且相等 。插入的数据都用这个套路。。。)

下午,鬼知道哪张表某个重要字段没加或者关联关系弄错了,插入的商户web页面全部无法显示,找不到原因,项目组也被我弄得很奔溃,只能重建数据库,旧数据库不小心被清了。。而后手工在web页面建了些基础数据。然后要利用这些基础数据创建其他数据,我的懒偷不成了。。只能另想办法。要解决的一个问题就是,组合两张表的数据,取出每一行并添加固定字段,插入另一张表中。

晚上聚餐,到家已九点,继续查查资料,百度时无意中看到游标,似乎就是用来实现这样的功能的。在我不懈的努力下,终于能够组合设备表和告警定义表并生成设备的历史告警表了,安心睡觉

明天是第三天,希望不要再出什么岔子了

总结:

1.MySQL基础不扎实,平时使用太少,连union,left join的用法都得百度确认一下,以后要多动手

2.不够细心,简单的语句都能经常出错

3.写的存储过程仅仅只是为了满足当前的需求,执行时间似乎不会很短,后续有时间再来学习一下性能优化之类的

4.想学好数据库真不容易

DELIMITER $

CREATE PROCEDURE insert_alarm()

BEGIN

DECLARE done INT;

DECLARE v_code,v_level,v_group,v_gunno INT(8);

DECLARE v_name,v_serialnum VARCHAR(30);

DECLARE my_cursor CURSOR FOR

SELECT *

FROM(SELECT alarm_code,alarm_name,alarm_level FROM `e_alarm_define`)AS a

CROSS JOIN

(SELECT group_id,serialnum,gunNo FROM`e_gun`)AS b;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

OPEN my_cursor;

posLoop:LOOP

IF done=1 THEN

LEAVE posLoop;

END IF;

FETCH  my_cursor INTO v_code,v_name,v_level,v_group,v_serialnum,v_gunno;

INSERT INTO `e_alarm_history`(alarm_code,alarm_name,alarm_level,group_id,serialnum,gun)

VALUES(v_code,v_name,v_level,v_group,v_serialnum,v_gunno);

END LOOP posLoop;

CLOSE my_cursor;

END

$$

创建历史告警表:

CALL insert_alarm()

相关文章

  • 记第一次写存储过程

    最近这个项目要进行压力测试,需要看历史告警,充值记录,订单数据三张表的查询及处理能力。于是,我的任务:三天之内往数...

  • mysql定期删除数据

    整个过程总共分为三步: 写存储过程 写Event事件 把Event事件设置成Enable并打开事件任务 存储过程 ...

  • 项目中Orcale存储过程优化

    今天对之前写的Orcale存储过程做了一些优化,使其变得更加灵活,之前写的存储过程是使用游标存储SQL执行结果,但...

  • oracle写存储过程简单小例子--新手

    第一次用oracle写存储过程,简单记录下。 工具:plsql。 1、先用plsql连上数据库。 2、点击 文件-...

  • Sql Server 中关于@@ERROR的一个小小误区

    我们经常写存储过程的时候会用到@@ERROR来判断执行是否成功,很久没有写复杂点的存储过程了,今天发现前段时间写的...

  • Mysql存储过程

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 创建存储过程 调用存储过程 存储过程...

  • MySQL批量添加数据

    创建存储过程 执行存储过程 删除存储过程

  • 17 存储过程

    过程: 函数: 过程是没有返回值的函数 存储过程: 存储过程语法 存储过程1--创建简单的存储过程 存储过程2--...

  • 存储过程

    详见存储过程详解 创建存储过程 使用存储过程 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一...

  • 存储过程与函数

    存储过程与函数存储过程的定义存储过程的创建存储过程的操作自定义函数 存储过程与函数 存储过程的定义 运行效率高 降...

网友评论

      本文标题:记第一次写存储过程

      本文链接:https://www.haomeiwen.com/subject/cttnkxtx.html