从MySQL中的函数返回值

时间:2012-02-02 10:14:38

标签: mysql sql function return-value stored-functions

您好我尝试在MySQL中编写一个函数,它从表中返回一个值。

我收到了错误:

  

错误代码:1415。不允许从函数

返回结果集

我知道这意味着什么,但我不知道如何解决这个问题。我只需要一个值,插入行的Id。我很高兴得到任何帮助。

该功能的作用是:
使用Random值在aip_request表中插入一个新行,这样我就可以在插入后识别该行。该函数应返回已创建行的Id。 request_id是一个autovalue。

DROP FUNCTION IF EXISTS `sp_get_new_request_id`;
DELIMITER $$

CREATE FUNCTION `sp_get_new_request_id` ()
RETURNS BIGINT
BEGIN
 DECLARE var_random bigint;
 SET @random := CAST(RAND(NOW()) AS CHAR(150));
 INSERT INTO aip_request
  (Firstname)
  VALUES( @random );
 SELECT request_id INTO var_random FROM aip_request
 WHERE Firstname = @random 
 LIMIT 1;
 Return var_random;
END
$$

1 个答案:

答案 0 :(得分:1)

更改此查询 -

SELECT @random := CAST(RAND(NOW()) AS CHAR(150));

这一个 -

SET @random := CAST(RAND(NOW()) AS CHAR(150));

...您无法执行从存储函数返回数据集的SELECT查询。