当前位置:   article > 正文

mysql存储过程及常见问题_mysql执行存储过程,提示找不到

mysql执行存储过程,提示找不到

1 需求:当月购买的秤数量

表里要有两个字段,日期(YYYY-MM)、秤数量;从相关表中获取这两个字段,设置时间;建立事件,调用存储过程

2 流程

2.1 建表

drop table `rate_a`

create table `rate_a`(
`id` int(11) not null auto_increment,
`date_a` date default null,
`num_a`  int(11) default "0",
PRIMARY key(`id`),
key `date_a`(`date_a`)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

注意字段的类型:date就是YYYY-MM-DD 如果插入的数据不符合,就返回为0 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.2 建立存储过程

CREATE DEFINER=`bianla_xujh`@`localhost` PROCEDURE `rate_a`(IN current_t DATE)
BEGIN
	SET @date:= DATE_ADD(current_t,INTERVAL -1 MONTH),
    @date_f:= DATE_FORMAT(@date,'%Y-%m-01 00:00:00'),
    @date_t:= DATE_FORMAT(Last_DAY(@date),'%Y-%m-%d 23:59:59');
DELETE FROM `rate_a` WHERE date_a=date_format(@date,'%Y-%m');
INSERT INTO `rate_a`(`date_a`,`num_a`)
SELECT
    aa.date_a,
    aa.num_a
FROM
   (
        SELECT
            date_format(a.created,'%Y-%m-%d') as date_a,
            count( DISTINCT a.buyer_user_id ) AS num_a 
        FROM
            bianla_warespage_order AS a 
        WHERE
            STATUS IN ( 10, 20 ) # 10,20 代表购买
            AND created BETWEEN @date_f 
            AND @date_t 
        ) AS aa;
END
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

2.3 建立事件

begin

call rate_a('2019-01-01');

end

时间的设置在 计划 中
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

要明白自己写的逻辑,从逻辑的最开始找问题,一步一步排查(从一大堆代码中根据自己的思路流程,一点一点排查),结合报错信息,可以更快捷;如果没有报错,那就是自己的思维漏洞,一定要仔细筛选

2.4 问题

由于在第二步中我们有 变量,所以要在里面给变量赋值,注意变量 的类型,对于日期要加 ’ ’

1.确保自己有建立存储,事件的权限
2.确保事件是开着的
3.若表已经存在,先删除表
4.建立表,注意类型,自增主键等等
5.建立存储过程:里面包含查询、插入、时间、变量等语句

  • 要先测试查询语句是正确的
  • 插入表中的字段名要保证顺序,名称一致
  • 一般我们都是设置时间为变量,
  • 删除语句要有条件,一般都是我们设置的时间变量,也就是我们插入不成功时,要删除的那一条记录;如果没有条件会进行全表清空。
  • Unknown column 'num_1' in 'field list' 一般是 要插入的字段名与表里面的字段名不一致,要检查表名
  • 插入不成功时,要看是否有权限,是否开了事件,字段名是否一致
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/783861
推荐阅读
相关标签
  

闽ICP备14008679号