• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql存储过程出错(都两天了,)

mysql 搞代码 7年前 (2018-06-05) 171次浏览 已收录 0个评论

mysql存储过程出错(都两天了,救命啊!)
表shop里的内容如下!
+——–+——–+———+—————+
|   shopId   |   cityId   |   tradeId   |   shopName             |
+——–+——–+———+—————+
|   UA0AHA   |   UA           |   AH             |   gosure   s   shop   |
+——–+——–+———+—————+

其中cityId是shop的城市编号,tradeId是行业编号;
shopId的第12位是城市编号,45位是行业编号
现在要写一个存储过程在shop表里添加内容,
存储过程的输入参数是cityId   ,tradeId ,   shopName  
shopId   要在存储过程根据(cityId   ,tradeId)自动生成,

比如现在有一个shopId   为UA0AHA的记录,如果再插入一个cityId   =   UA,tradeId=AH的shop   那么它的shopId   就应该是UA0AHB了

现在我写的存储过程如下,(存储过程我刚学!见笑了!)

DELIMITER   $$

DROP   PROCEDURE   IF   EXISTS   `test`.`insertIntoShop`$$
CREATE   PROCEDURE   `test`.`insertIntoShop`   (
    in   cityId   varchar(2),
    in   tradeId   varchar(2),
    in   shopName   varchar(45)
)
BEGIN
  DECLARE   shopId   varchar(6);
  DECLARE   lastShopId   varchar(6);
  DECLARE   stopFlag   int;
  DECLARE   cursor_shopId   CURSOR
    FOR   select   shopId
            from   `shop`
            where   `cityId`   =   cityId   and   `tradeId`   =   tradeId
            group   by   shopId   desc   limit   1;
    DECLARE   CONTINUE   HANDLER   FOR   NOT   FOUND   set   stopFlag=1;

    OPEN   cursor_shopId;
    REPEAT
        FETCH   cursor_shopId   into   lastShopId;
        UNTIL   stopFlag   =   1
    end   REPEAT;
    CLOSE   cursor_shopId;

    select   lastShopId;
#问题在这里出现
#明明有一条记录,可是lastShopId   为NULL
END$$

DELIMITER   ;

——解决方案——————–
up


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql存储过程出错(都两天了,)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址