返回bigint时,函数抱怨[不允许从函数返回结果集] [英] Function complain about [not allowed to return a result set from a function] when returning bigint

查看:51
本文介绍了返回bigint时,函数抱怨[不允许从函数返回结果集]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我忘了放下定界符指令,使用一些分号,并且使用了像[select variable = field]这样的tsl语法,该语法在mysql中无效.
使用tsl语法时出现Mysql错误[不允许从函数返回结果集]并没有太大帮助.
@AndreKR将所有内容都指向我,谢谢.
我正在使用mysqlworkbench 5.2.30 CE.工作功能变为:

I forget put delimiter directive, some semicolon and was using tsl syntax like [select variable = field] that is not valid in mysql.
Mysql error when you use tsl syntax is [not allowed to return a result set from a function] and dont help much.
@AndreKR point all of it to me, thanks.
Im using mysqlworkbench 5.2.30 CE. The work function become:

delimiter //
CREATE FUNCTION nextval (seq_name varchar(100))  
  RETURNS bigint(20)  
    READS SQL DATA  
  NOT DETERMINISTIC  
    BEGIN  
     DECLARE workval bigint(20);  
     SELECT count(1) into workval  
        FROM tip_sequence  
        WHERE sequencename = seq_name;  
     IF workval <> 1 THEN  
        DELETE  
            FROM tip_sequence  
            WHERE sequencename = seq_name;  
        INSERT  
            INTO tip_sequence (sequencename, sequenceval, sequencestep)  
            VALUES (seq_name, 1, 1);  
     END IF;
     SELECT sequenceval into workval  
        FROM tip_sequence  
        WHERE sequencename = seq_name;  
     UPDATE tip_sequence  
        SET sequenceval = sequenceval + sequencestep  
        WHERE sequencename = seq_name;  
     RETURN workval;
    END//
delimiter ;

推荐答案

我认为 SELECT workval = count(1)FROM ... 语法无效.我认为您的意思是: SELECT count(1)从...进入工作区..

I don't think the SELECT workval = count(1) FROM ... syntax is valid. I think what you mean is: SELECT count(1) INTO workval FROM ....

这篇关于返回bigint时,函数抱怨[不允许从函数返回结果集]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆